Я подозреваю, что Chrome добавит ваши скрипты содержимого в IFRAME, который является частью исходного источника страницы, который имеет место с примером reddit.com - IFRAME являются частью исходной страницы, так что Chrome может и будет вводить те. Для ссылки html5video IFRAME не является частью исходного источника. Однако, если вы проверите элементы, вы увидите IFRAME, который подскажет мне, что IFRAME динамически загружается в DOM. Я вижу такое же поведение с расширением, которое я написал, поэтому он кажется последовательным.
Если вам нужно ввести в IFRAME, то, возможно, вы можете подключить событие создания DOM и принять меры, вам требуется:
document.addEventListener('DOMNodeInserted', onNodeInserted, false);
UPDATE:
Что об этом для http://html5video.org/ - с использованием следующих Код content_script Я могу получить тег IFRAME, а затем VIDEO. Примечание. Этот подход/концепция также должен хорошо работать и для Reddit.
content_script.js
console.log("content script for: " + document.title);
var timer;
document.addEventListener('DOMNodeInserted', onNodeInserted, false);
function onNodeInserted(e)
{
if(timer) clearTimeout(timer);
timer = setTimeout("doSomething()", 250);
}
function doSomething()
{
$media = $(".mwEmbedKalturaIframe");
console.log($media);
$video = $media.contents().find("video");
console.log($video);
}
manifest.json
{
// Required
"name": "Foo Extension",
"version": "0.0.1",
// Recommended
"description": "A plain text description",
"icons": { "48": "foo.png" },
//"default_locale": "en",
// Pick one (or none)
"browser_action": {
"default_icon": "Foo.png", // optional
"default_title": "Foo Extension" // optional; shown in tooltip
},
"permissions": [ "http://*/", "https://*/", "tabs" ],
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["jquery-1.7.1.min.js", "content_script.js" ],
"run_at": "document_idle",
"all_frames": true
}
]
}
Смотрите также: jQuery/JavaScript: accessing contents of an iframe
только IFRAME присутствует в примере Reddit до щелчка для объявлений. IFRAME для каждого элемента мультимедиа создается динамически, когда вы нажимаете кнопку «воспроизведение видео»; Я не вижу разницы. Я не думаю, что добавление eventlistener будет работать, потому что мне нужно получить доступ к содержимому внутри IFRAME, которое, я думаю, могу сделать, только если внутри него будет введено содержимое. (Я считаю, что я видел отчет об ошибке в crbug, в котором говорится, что вы не можете видеть содержимое IFRAMES внутри страницы от родителя в текстовом файле.) –
Кроме того, mycriptcript открывает соединение с портом на странице фона, поэтому я имеют возможность перезапускать мой текст с помощью команды во всплывающем меню. Просто поиск JQuery для
Извините за задержку; был в отпуске. Ваш код работал для меня, что убеждает меня, что я должен иметь возможность конвертировать ваш код в общее решение для моего приложения. Также будет исследовать, почему код, который я написал ранее, не работал, но ваш код делает. –