2012-04-19 67 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

相關問題