Скрипт содержимого Chrome не загружается в около: пустая страница
Я разрабатываю расширение Chrome, которое будет загружать скрипт содержимого в соответствии со следующим манифестом:
"content_scripts" : [
{
"matches" : [ "<all_urls>" ],
"js" : [ "scripts/namespace/namespace.js",
"scripts/log/Logger.js"]
"run_at" : "document_start",
"all_frames" : true
}
]
Существует макет сайта, HTML-код которого:
<html>
<head>
<script language=javascript>
var test;
function makewindow() {
test=window.open('mywin');
test.window.document.write("<html><body><A onclick=window.close(); href= > click Me to Close</A>");
test.window.document.write(" ---- </body></html>");
}
</script>
</head>
<body>
<a href="" onclick="makewindow();return false;" >Click me to launch the external Window</a>
</body>
</html>
Если я нажму на ссылку A, и она запустится makewindow
функция и всплывает новое окно.
URL нового окна about:blank
и содержимое скрипта не загружается в этом новом окне.
Как загрузить контентный скрипт в этом новом окне?
2 ответа
Обновление: начиная с Chrome 37 (26 августа 2014 г.) вы можете установить match_about_blank
флагдок true
стрелять за about:blank
страницы.
Смотрите ответ alib_15 ниже.
Для Chrome до версии 37:
Вы не можете загрузить скрипт содержимого Chrome (или пользовательский скрипт) на about:blank
страницы.
Это потому что about:
не является одной из "разрешенных схем". Из расширений Chrome Match Patterns:
Шаблон соответствия - это, по сути, URL, который начинается с разрешенной схемы (
http
,https
,file
,ftp
, или жеchrome-extension
)...
В этом случае вам может быть лучше угнать makewindow()
,
В файле манифеста добавьте строку:
"content_scripts" : [
{
"matches" : [ "<all_urls>" ],
"match_about_blank" : true,
"js" : [ "scripts/namespace/namespace.js",
"scripts/log/Logger.js"]
"run_at" : "document_start",
"all_frames" : true
}
]