2016-12-08 3 views
0

Я пытаюсь сделать расширение chrome, которое принимает ввод, добавляет его URL-адресу и затем открывает URL-адрес на новой вкладке. Пока у меня есть popup.html, чтобы работать самостоятельно, но я изо всех сил пытаюсь заставить код работать с расширением.Открытие новой вкладки из текстовой записи из расширения chrome

{ 
    "manifest_version": 2, 
    "name": "SubSearch", 
    "description": "A simple way to go to subreddits", 
    "version": "0.1", 

    "browser_action": 
    { 
    "default_popup": "popup.html" 
    }, 

    "permissions": ["tabs"] 
} 

Вот мой manifest.json

<!DOCTYPE html5> 
<html> 
<body> 
<script> 
function process() 
{ 
var url="http://reddit.com/r/" + document.getElementById("url").value; 
location.href=url; 
return false; 
} 
</script> 
<form onSubmit="return process();"> 
<input type="text" name="url" id="url"> <input type="submit" value="go"> 
</form> 
</body> 
</html> 

и вот мой popup.html. Я видел страницу this, но я изо всех сил пытаюсь применить метод chrome.tabs.create к моему текущему коду. Любая помощь приветствуется, но новая для js и chrome dev!

Редактировать: Я вижу, что встроенный javascript не является исполняемым в chrome. Есть ли способ написать это (возможно, в отдельном файле .js), чтобы я мог достичь своей цели?

+2

Возможный дубликат [Chrome Extension - Содержание политики безопасности - выполнение встроенного кода] (http://stackoverflow.com/questions/25625412/chrome-extension-content-securi ty-policy-executing-inline-code) –

+0

Так что, если это невозможно в том, как я это сделал, где я могу изменить его, чтобы начать? Это тот ответ, который я нашел после нескольких часов поиска. – Guidan

ответ

0

Поскольку вы не можете использовать встроенный Javascript, вам необходимо написать код Javascript в отдельном исходном файле. Например:

popup.html

<html> 
<body> 
<input type="text" name="url" id="url"><button id="myButton">go</button> 
<script src="popup.js"></script> 
</body> 
</html> 

и в отдельном файле:

popup.js

function process() 
{ 
var url="http://reddit.com/r/" + document.getElementById("url").value; 
chrome.tabs.create({url:url}); //create a new tab 
} 
document.getElementById("myButton").onclick = process; 
Смежные вопросы