2012-10-31 77 views
1

我是铬扩展的新手。我已经尝试过创建扩展的第一个示例练习。现在我正试图在扩展弹出窗口的新选项卡中打开一个URL。 只是我在popup.html页面添加了一个HTML定位标记。如何从Chrome扩展弹出式菜单中打开新选项卡

a href="www.google.com">Click</a> 

但它没有开放。它试图在弹出窗口中使用以下URL打开URL。

铬扩展://ljamgfaclheagbikmcagffcbdbcoodna/www.google.com

我popup.html有这个代码。

<!doctype html> 
<html> 
    <head> 
    <title>Getting Started Extension's Popup</title> 
    <style> 
    </style> 
    <!-- JavaScript and HTML must be in separate files for security. --> 
    </head> 
    <body> 
    <b>Karthick</b> 
    <a href="www.google.com">Click</a> 
    </body> 
</html> 

而且我的manifest.json有以下JSON

{ 
    "name": "Test Extension", 
    "version": "1.0", 
    "manifest_version": 2, 
    "description": "The first extension for my test", 
    "browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "popup.html" 
    }, 
    "permissions": [ 
    "tabs" 
    ] 
} 

我没有写在popup.js 我搜索了它是如何做任何事情。但他们说我必须使用以下内容。

chrome.tabs.getSelected({}, function(tab) { 
    chrome.tabs.update(tab.id, {url: 'http://google.com'}); 
}); 

但我不知道正确的方法/在哪里做到这一点。请告诉我要做的步骤。 在此先感谢。

回答

2

您可以为该链接添加一个onclick监听器。

var link = document.getElementById("link"); 
link.addEventListener("click", function(){ 
    chrome.tabs.getSelected({}, function(tab) { 
    chrome.tabs.update(tab.id, {url: 'http://google.com'}); 
    }); 
}, false); 

但是我会使用chrome.tabs.create()函数。

+0

它不工作...任何许可相关的东西...任何我想包括我已经错过的... – flykarthick

+0

你有没有添加一个类或id标签的JavaScript代码中匹配这个元素?例如'Open' –

1

这里是解决方案,只是将下面的代码添加到popup.js:

$(function() { 
    $('#s').click(function() { 
    chrome.tabs.create({url: 'http://www.google.com'}); 
    }); 
}); 

document.addEventListener('DOMContentLoaded'); 

,并更新你的锚标记,看起来像这样:因为我们使用jQuery选择

<a id="s" href="www.google.com">Click</a> 

更新您的popup.html到:

<!doctype html> 
<html> 
    <head> 
    <style> 
    </style> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
    <script src="popup.js"></script> 
    </head> 
    <body> 
    <b>Karthick</b> 
    <a href="www.google.com">Click</a> 
    </body> 
</html> 

并允许popup.html中的jquery更新您的清单看起来像这样:

{ 
    "name": "Test Extension", 
    "version": "1.0", 
    "manifest_version": 2, 
    "description": "The first extension for my test", 
    "browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "popup.html" 
    }, 
    "permissions": [ 
    "tabs" 
    ], //<<--- do not miss this "," 
    "content_security_policy": "script-src 'self' https://ajax.googleapis.com; object-src 'self'" 
} 

如果这不起作用,让我给你这个crx。 干杯!

+0

我会检查并通知您 – flykarthick

2

Easy.在popup.html将这个:

<a href='google.com' target='_newtab'>Click</a>

或者把这个JS文件:

window.open('http://google.com','_newtab');

+0

您也可以尝试使用“_blank”而不是“_newtab”。 – jkdev

+0

或jQuery。 [这真的很棒,可以做所有事情。](http://4.bp.blogspot.com/-Hk1mt-RKYLc/UOkxShm6NrI/AAAAAAAACqo/LVmqHOfWV7g/s1600/20091116-so-large.gif) – jkdev

相关问题