2012-04-19 3 views
0

크롬 확장 프로그램을 만들려고합니다. 사용자가 아이콘을 클릭하면 양식이있는 팝업 창이 나타납니다. 양식의 텍스트 영역에는 URL에 오는 더 많은 매개 변수가 포함될 수 있습니다. 채우고 이동 버튼을 클릭하면이 매개 변수가있는 URL이있는 여러 개의 탭을 열어야합니다.크롬 확장 - 양식을 채운 후 여러 탭을 엽니 다.

예 : 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에서 내가 가진 :는 사용자가 GO 버튼을 클릭 할 때

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

    opener(); 
} 

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

    divs.addEventListener('click', click); 

}); 

그래서, 오프너() 함수는 시작해야합니다.

오프너 기능은 텍스트 영역과 라디오 버튼의 값만 결정하고, 텍스트 영역에 manz 매개 변수가있는만큼 많은 새 탭을 엽니 다.

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

결과는 \ n으로 분할 된 텍스트 영역의 값이며 라디오 값은 선택된 라디오 버튼의 값입니다.

이 잘 작동 - 양식 팝업이 나오면 브라우저 아이콘을 클릭 한 후,하지만 난 텍스트 영역에 입력하고 첫 번째 라디오 버튼을 선택하면, 그때 GO를 클릭 오프너 funvtion하지 작동 ...

작동하는 유일한 방법은 작업 단어가있는 팝업 경고와 click (e) 기능에서 시작하는 경고입니다.

그래서 오프너 기능은 시작 경고를 기록하지만 다른 아무것도 ... 어떤 탭을 열 수 없습니다, 아무 일도 일어나지 않습니다 ...

은 누군가가 나에게하시기 바랍니다 도울 수 있습니까?

답변

1

chrome.tabs.create 함수를 사용하면 window.open 함수보다 확장 기능이 훨씬 뛰어나다는 것을 알게되었습니다.

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

라디오 버튼에서 값을 얻는 데 문제가 있다고 생각합니다. 왜 스크립트가 여기에서 멈췄습니다. 그리고 예, 감사합니다. chrome.tabs.create가 잘 작동합니다! 내가 알고 싶은 유일한 것은 - 확장 기능은 http : // 페이지가 크롬에서 열렸을 때만 작동하지만 빈 탭에서는 작동하지 않는다는 것입니다. manifest.json에 설정된 권한 - "권한": [ "탭", "http : // */*", "https : // */*" ]하지만 잘 모르겠습니다. 빈 탭에서도 작동하도록 설정하는 방법 ... – wotan

관련 문제