2016-11-17 9 views
0

Я создаю расширение Chrome для академического ресурса. Эти академические ресурсы в основном размещены за веб-прокси университетов.Использование manifest.json, ввод сценариев содержания, когда URL-адрес соответствует одному слову в любом месте URL-адреса

Использование manifest.json, как я впрыснуть свой контент сценарий только в те сайты, которые содержат слово 'foobar' в URL (в любом месте в URL, либо хост или путь)?

+0

На самом деле, я действительно получить его работу довольно быстро путем инкапсуляции сценария контента в '' '', если (window.location.href.indexOf («word»)! = -1) {...} '' 'и помещать« content_scripts: »« соответствует »в' '' '' ', но я все же предпочел бы делать это с manifest.json, потому что теперь я 'запускать сценарий содержимого на каждой странице, которую посещает пользователь. Это немного неправильно. – ervazu

+0

_ "содержать слово" foobar "в URL-адресе" _ - в любом месте, в главной части или в пути? – Xan

+0

Да, где угодно. Либо хост-часть, либо путь. – ervazu

ответ

2

Да, вы можете делать то, что хотите, используя ключ include_globs внутри объекта, описывающего вашу инъекцию content_scripts. Это может быть что-то вроде:

"content_scripts": [ 
    { 
     "matches": [ 
      "<all_urls>" 
     ], 
     "include_globs": [ 
      "*foobar*" 
     ], 
     "js": ["myscript.js"] 
    } 
] 

Для того, чтобы скрипт контента, который будет введен, он должен соответствовать обоим критериям, указанным в matches и что в include_globs (и не должен ничего совпадать exclude_globs, если таковой имеется).

Вы не можете сделать это только с matches, потому что в matches, то *, при использовании в принимающей части матча, разрешается только в качестве первого символа хозяина.

Ссылки: