Chrome 확장 프로그램을 구축 중이며 탭에 자바 스크립트 코드를 주입하고 실행하려고합니다. 예를 들어탭에서 URL을 변경하거나 다시로드 할 때 chrome.tabs.executeScript 사용
:이 간단한 스크립트를 입력하고 "테스트"를 검색하고 클릭해야 google.com에서 실행되는 것을 의미하고
$('#gbqfq').val('test');
$("#gbqf").submit();
$('#rso > div.srg > li:nth-child(1) > div > h3 > a').click();
다음 code_
중인 변수로
chrome.tabs.query({active: true, lastFocusedWindow: true}, function(selectedTab) {
chrome.tabs.executeScript(selectedTab[0].id, {code: code_});
});
첫 번째 결과.
요청을 제출하면 탭에서 URL이 변경되어 다른 페이지가로드됩니다. 그리고 페이지가로드 될 때 chrome.tabs.executeScript
에 의해 주입 된 모든 스크립트가 사라지는 것으로 보입니다.
동일한 탭의 다른 페이지를 통해 단일 스크립트를 실행하는 방법이 있습니까?
내 확장 프로그램은 사용자가 자신의 스크립트를 실행할 수 있도록 허용해야하기 때문에 탭이 다시로드 될 것으로 예상되는 스크립트의 시점 (몇 가지 chrome.tabs.executeScript
호출을 사용하기 위해)을 미리 아는 것은 복잡합니다. . 탭 멀리 탐색 한 후
{
"manifest_version": 2,
...
"options_page": "options.html",
"permissions": [
"storage",
"unlimitedStorage",
"tabs",
"windows",
"http://*/*",
"https://*/*"
],
"browser_action":
{
"default_popup": "popup.html"
}
}
'onUpdated'이 (가) 실행될 때 스크립트가 어떤 지점에 있는지 알 수있는 방법이 있습니까? 앞에서 말했듯이 스크립트에서 탐색이 예상되는 위치를 알 수 없습니다. – Seeven
'onUpdated' 시점에서 (content) 스크립트는 더 이상 존재하지 않습니다. – Xan
전체적으로, 임의의 사용자 코드를 해석하는 경우 귀하의 질문은 매우 광범위하게 보입니다. – Xan