2

我目前正在开发 Chrome 扩展程序,我想将弹出窗口的 url 存储到字符串变量中。我可以通过 "document.createElementvariable.appendChild方法获取 url,但我不能将它存储在字符串中。

这有效:

    function getLinks(){
  var url = document.createElement("p");

  chrome.tabs.query({windowType:"popup"}, function (tab){
    for(x in tab){
       var adresse= document.createTextNode(tab[x].url);
       url.appendChild(adresse);
    }  
  });
  document.body.appendChild(url);
}

这不起作用:

function getLinksbis(){
  var url = "1 - ";

  chrome.tabs.query({windowType:"popup"}, function (tab){
    for(x in tab){
       var adresse= tab[x].url;
       url = url + adresse;
    }  
  });
  document.write(url);
}

你能帮助我吗 ?有可能做我想做的事吗?我想要它在一个字符串中,因为我想向这个 url 添加参数,然后将其返回给用户。

请原谅我的英语,我是法国人。;-)

谢谢。

4

1 回答 1

0

你的代码确实有效,只要确保你有

{
  ..
  "permissions":["tabs"]
  ..
}

清单文件中的选项卡权限。

测试后的输出

在此处输入图像描述

编辑 1

function getLinksbis() {
    var url = "1 - ";

    chrome.tabs.query({
        windowType: "popup"
    }, function (tab) {
        for (x in tab) {
            var adresse = tab[x].url;
            url = url + adresse;
        }
        document.write(url);
    });

}

将您的document.write(url);内部异步回调移回,它是一个异步函数,回调成功后应进行最终调用。

于 2013-01-17T09:33:57.220 回答