Более общие шаблоны соответствия сценариев контента? - PullRequest
1 голос
/ 25 декабря 2010

Я хочу соответствовать:

http://images.orkut.com/
http://www.orkut.co.uk/
http://www.orkut.com.br/
http://images.orkut.jp/

Шаблон, который я пытаюсь использовать:

http://*.orkut.*/*

Но когда я пытаюсь загрузить расширение, оно говорит:

invalid value for content_scripts[0].matches[0]

Есть ли способ сопоставить эти URL без указания полного домена?


В файле манифеста

"permissions": [ "tabs", "http://*.orkut.*/*", "https://*.orkut.*/*" ],
"content_scripts":
[
    {
        "matches": [ "http://*.orkut.*/" ], // error
        "js": ["content/loader.js"]
    }
]

Более универсальный не работает, в то время как этот работает:

"matches": [ "http://*.orkut.co.uk/" ],

Ответы [ 2 ]

2 голосов
/ 26 декабря 2010

Вы не можете сделать это по соображениям безопасности, пожалуйста, обратитесь к http://code.google.com/chrome/extensions/match_patterns.html для получения дополнительной информации.

Кроме того, руководитель команды Chrome Extension сделал хорошее объяснение, почему: http://groups.google.com/a/chromium.org/group/chromium-extensions/msg/3d305eb340f01763

0 голосов
/ 01 августа 2018

Как отметил Мохамед Мансур , не поддерживается Google в manifest.json

Однако вы все равно можете добавить простую проверку javascript в свой скрипт контента!

Например, так я обошел аналогичный случай, когда я хотел, чтобы скрипт контента выполнялся только на 192.168.*.* хостах (это внутреннее расширение chrome)

  1. в вашем manifest.json используйте <all_urls>

    ...
      "content_scripts": [
        {
          "matches": ["<all_urls>"],
          "js": ["content-script.js"]
        }
      ],
    ...
    
  2. в вашем content-script.js используйте простое условие, чтобы проверить, соответствует ли имя хоста шаблону регулярных выражений

    let isValidHostname = /^192.168.\d+.\d+$/.test(window.location.hostname);
    if (isValidHostname){
        // Do your stuff here
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...