我正在尝试了解有关javascript的内容并遇到了这个问题。基本上我正在尝试做的是获取网址,重定向到代码中的网站并将其放在文本框上并激活按钮不是说所有这一切都得到答案,但作为一个抬头,因为我的目标对于。所以我在这里:
popup.js:
var url, tab,myNewTab;
function init(){
chrome.tabs.query({currentWindow: true, active: true},function(tabs){
url = tabs[0].url;
tab = tabs[0]
tabId = tabs[0].id;
processTab();
});
}
function processTab(){
chrome.tabs.update(tabId, {selected: true});
if (url.substring(0,5) === "http:")
{
url = insert(url , 4 , "s");
}
chrome.tabs.update(tabId , { url: "https://alexanderproxy33.appspot.com"})
cont() ;
}
function insert(str, index, value) {
return str.substr(0, index) + value + str.substr(index);
};
function cont()
{
chrome.tabs.executeScript(null, {code:"document.getElementById('input').value = url"});
}
init();
我尝试访问的网站代码:
<form action="" method="get" accept-charset="utf-8" target="_blank">
<input name="url" type="text" class="txt" id="input" placeholder="type url here.." onfocus="this.value='';" />
<input type="submit" class="btn" value="Go" />
</form>
我已经尝试了一些方法来解决这个问题(即尝试使用非执行脚本的东西,将一点点代码放在文件中)但似乎没有任何工作让我相信某些东西不能正常工作。正如我这样做是为了教育自己,任何建议都非常受欢迎。在此先感谢,并知道我随时可以在这里查看,我可能需要一段时间,去上班
答案 0 :(得分:1)
您正尝试在页面上下文中执行此操作:
chrome.tabs.executeScript(null, {
code:"document.getElementById('input').value = url"
});
您注入的页面中的 url
is not defined - 导致您看到的内容。
您想首先在页面的上下文中评估url
:
chrome.tabs.executeScript(null, {
// JSON-encode to wrap in quotation marks properly
code: "document.getElementById('input').value = " + JSON.stringify(url)
});