Кажется, что мой скрипт контента 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
всегда принадлежал первой вкладке (т.е. главная страница).
Надеюсь, это кому-нибудь поможет, всегда проверяйте, что вы делаете, а затем проверяйте его логику.