Подтвердить что ты не робот

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

Я пробовал много способов (все документированные процедуры) вставлять script на определенную страницу после проверки URL-адреса на onUpdated.addListener. Наконец, приведенный ниже код с "executscript" работает, но не идеально. Я мог получать предупреждения, но не смог найти элементы документа страницы через getElementById/getElementsByName.

Когда я проверил страницу, вводится script. Но в консоли ошибок я получаю:

Отказ загрузки хром-расширения://jfeiadiicafjpmaefageabnpamkapdhe/js/Leoscript.js. Ресурсы должны быть перечислены в файле манифеста web_accessible_resources для загрузки страницами за пределами расширения.

manifest.json:

{
  "name": "Leo Extension for Job Boards",
  "version": "1.6",
  "manifest_version": 2,
  "content_security_policy": "script-src 'self'; object-src 'self'",
  "description": "Leo Extension",
  "background": {
    "scripts": ["js/Leojshelper.js"],
    "persistent": true
  },
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["js/eventPage.js"],
      "run_at" : "document_start"
    }
  ],
  "icons":{"48":"images/bob48.png", "128":"images/bob128.png"}, //Define any icon sizes and the files that you want to use with them. 48/128 etc.
  "browser_action": {
    "default_icon": "images/bob.png",       // What icon do you want to display on the chrome toolbar
    "default_popup": "LeoExtwatch.html"     // The page to popup when button clicked.
  },
  "permissions": [
    "tabs", "<all_urls>"      // "http://*/*","https://*/*"             // Cross Site Access Requests
  ],
   "web_accessible_resources": ["js/LeoScript.js"]
}

Я также предоставил разрешение "web_accessible_resources" для script, но все равно не имел успеха. Код в фоновом режиме script:

chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
    if (changeInfo.status == 'complete') {
        if (tab.url.indexOf("in.yahoo") !== -1) {
            chrome.tabs.update(tabId, { url: "https://login.yahoo.com/config/mail?.intl=us" });
            chrome.tabs.executeScript(tabId, {
                code: "document.body.appendChild(document.createElement('script')).src='" +
    chrome.extension.getURL("js/LeoScript.js") + "';"
            }, null);

Код в LeoScript.js, который будет вводиться на определенную страницу.

$(document).ready(function () {
    alert('injected');
    document.getElementById('username').value='aaaaaaa';
});

Содержимое script: eventPage.js, которое я использовал для ввода script.

var script = document.createElement('script');
    script.src = chrome.extension.getURL("js/Leoscript.js");
    (document.body || document.head || document.documentElement).appendChild(script);

Пожалуйста, укажите мне любые изменения в приведенном выше коде, которые позволят решить проблемы с разрешениями. Спасибо заранее.

4b9b3361

Ответ 1

ОБНОВЛЕНИЕ: Наконец-то выяснилась ваша проблема. В eventPage.js вы пытались ввести js/Leoscript.js, который не является белым, вместо js/LeoScript.js(с капиталом "S" ), который является белым. Обратите внимание, что URL-адреса чувствительны к регистру!

chrome.tabs.executeScript(tabId, {file: 'js/LeoScript.js'});

LeoScript.js:

alert('injected');
document.getElementById('username').value='aaaaaaa';

Ответ 2

EDIT:

Это рабочая версия, в которой используется комбинация web_accessible_resources и Injection

manifest.json

{
"name":"Off Screen Tabs Demo",
"description":"This demonstrates Off Screen Tabs API",
"manifest_version":2,
"version":"1",
"permissions":["tabs","<all_urls>"],
"browser_action":{
    "default_icon":"screen.png",
    "default_popup":"popup.html"
},
 "web_accessible_resources": ["js/LeoScript.js"] ,
 "permissions":["tabs","<all_urls>"]
}

LeoScript.js

alert("Injected..");

popup.html

<html>
<head>
<script src="popup.js"></script>
</head>
<body>
</body>
</html>

popup.js *

document.addEventListener("DOMContentLoaded",function (){
    chrome.tabs.executeScript( {"file": "js/LeoScript.js"});
});

Сообщите мне, есть ли у вас проблемы с запуском

Ответ 3

Многие выйдут на эту страницу для этой ошибки, потому что они не включили свои изображения/веб-ресурсы в файл manifest.json. Ссылка на документацию api полезна, поэтому поделитесь ею: веб-ресурс в манифесте