2012-04-19 58 views
0

我试图创建一个Chrome扩展程序 - 当用户单击图标时,出现带有窗体的弹出窗口。表单中的textarea可以包含更多涉及URL的参数。填写并点击GO按钮后,需要打开带有此参数的URL的多个选项卡。Chrome扩展程序 - 填写表格后打开多个选项卡

实施例:popup.html

<form name="myform">` 
<textarea id="params" name="params" style="width: 170px;height: 270px;"></textarea>` 
<input id="edit" checked="checked" type="radio" name="edit" value="1" /> option 1 <input id="edit" type="radio" name="edit" value="2" /> option 2` 
<div id="clicked">GO</div>` 
</form>` 

然后在popup.js我有:

function click(e) { 
    chrome.tabs.executeScript(null, { 
     code: "alert('starting');" 
    }); 

    opener(); 
} 

document.addEventListener('DOMContentLoaded', function() { 
    var divs = document.getElementById("red"); 

    divs.addEventListener('click', click); 

}); 

因此,当一个用户点击GO按钮时,开启器()函数需要启动。

这里是opener函数 - 它只确定textarea和单选按钮的值,并打开manz参数在textarea中的许多新选项卡。

function opener() { 
    alert('working'); 
    var parameter = document.myform.getElementById("params").value; 
    for (index = 0; index < document.myform.edit.length; index++) { 
     if (document.myform.edit[index].checked) { 
      var radioValue = document.myform.edit[index].value; 
      break; 
     } 

     var Result = parameter.split("\n"); 

     if (radioValue == 1) { 
      for (i = 0; i < Result.length; i++) { 
       window.open('http://mypage.com?param=' + Result[i]); 
      } 
     } 
    } 
} 

所以结果是textarea被\ n分割的值,而radio值是所选单选按钮的值。

这工作得很好 - 点击浏览器图标与形式弹出来了之后,但是当我填写的textarea并选择第一个单选按钮,然后我点击GO,首战funvtion工作不...

唯一可行的是带有工作词的弹出式警报,然后是从点击(e)功能开始的警报。

所以揭幕战功能开始,写警报,但没有别的......没有标签将打开,什么也没有发生......

有人可以帮我吗?

回答

1

我发现使用chrome.tabs.create函数在扩展中比window.open函数的效果好得多。

chrome.tabs.create({url:"https://www.facebook.com/PSChrome"}); 
+0

我认为问题是从单选按钮获取值,这就是为什么脚本停在这里。是的,谢谢你,chrome.tabs.create非常好用!我唯一想知道的是 - 只有当任何http://页面在Chrome中打开时,我的扩展才起作用,但不能在空标签上工作。我认为这是在manifest.json中设置的权限 - “permissions”:[ “tabs”,“http:// */*”,“https:// */*” ]但我不知道如何将它设置为在空白标签上工作... – wotan 2012-04-20 19:37:43

相关问题