Документ внутри моего скрипта контента остается тем же после нажатия (расширение Chrome) - PullRequest
0 голосов
/ 14 мая 2018

Кажется, что мой скрипт контента document.URL всегда имеет одно и то же значение, даже когда я нажимаю на случайную ссылку <a href.

В приведенной ниже функции в скрипте контента у меня есть функция с именем performclick(), который находит случайную ссылку в текущем документе, затем щелкает по нему.

Теперь, разве в следующий раз, когда я позвоню performclick(), я получу еще один document объект?т.е. документ текущей активной активной вкладки?

Например, когда я щелкаю ссылку на главной странице, и она открывает новую вкладку с другим загруженным веб-сайтом, мне нужен скрипт содержимого, чтобы дать мне document этой новой вкладки с загруженной ссылкой на веб-сайт.

Но иногда я получаю объект document на одной и той же главной странице.Пожалуйста, помогите

Манифест

{
"manifest_version": 2,
"name": "OSP Updater",
"version": "1.0.0",
"content_scripts": [{
    "run_at": "document_start",
    "js": ["content.js"],
    "matches": [ "<all_urls>" ]
}],
"permissions": [
"background", "webRequest", "webRequestBlocking", "tabs", "<all_urls>"
],
"background": {
"scripts": ["background.js"],
"persistent": true
},
"web_accessible_resources": ["jsui.js"]
}

Сценарий содержимого

window.onload = function () {
var elm = document.getElementById("my-container");
if (elm != undefined && elm != null) {
    //alert("Main Page LOADED!!!");        
}
}
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
if (request.clickit == "yes") {
    performclick();
}    
});
function performclick() { 
//document.URL is always the same  
var links = document.querySelectorAll("a");
if (links.length) {
    var linkToClick = links[1];
    var clickEvent = document.createEvent('MouseEvents');

    clickEvent.initEvent('click', true, true);
    linkToClick.dispatchEvent(clickEvent);        
}
}

Обновление № 1:

Глупо, получается, что я отправлял сообщение из моего фонового скрипта в свой контент-скрипт через первую вкладку.

Я принял решение о щелчке в фоновом скрипте, а затем отправил сигнал скрипту контента такчто сценарий содержимого может выполнять фактический щелчок.

Так как я отправлял сообщение из фонового сценария в сценарий содержимого на 1-й вкладке, это привело к тому, что объект document всегда принадлежал первой вкладке (т.е. главная страница).

Надеюсь, это кому-нибудь поможет, всегда проверяйте, что вы делаете, а затем проверяйте его логику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...