Chrome.tabs.executeScript 似乎什么都没做

Chrome.tabs.executeScript doesn't seem to be doing anything

我正在尝试学习一些关于 javascript 的知识,但遇到了这个问题。基本上我想要做的是获取 url ,重定向到代码中的站点并将其放在文本框上并激活按钮 不是说所有这些都是为了得到答案,而是作为一个提醒我的目标是所以我在这里:

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>

我已经尝试了一些方法来解决这个问题(即试验非 executeScript 的东西,将那一小段代码放入文件中)但似乎没有任何效果,这让我相信有些地方不正常。因为我这样做是为了教育自己,所以非常欢迎任何建议。提前致谢,我知道我会随时查看这里,我可能需要一段时间才能开始工作

您正试图在页面上下文中执行此操作:

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)
});