我增加了一个YouTube视频在我的站点(如<iframe width="640" height="360" src="https://www.youtube.com/embed/QE5KOfjKLy0" frameborder="0" allowfullscreen></iframe>
)Firefox和Chrome浏览器 - 不同的行为IFRAME
而使用Firefox扩展,我可以取得YouTube的链接嵌入视频当我点击视频的标题或“youtube按钮”(请参见下面的屏幕截图)。
我不知道为什么,但它的作品,我可以看到视频的网址中的“浏览器控制台”(Ctrl + Shift + J为Firefox)。
但铬浏览器有不同的行为,它只适用于当前页面上的简单网址(<a href="...">...</a>
),而不是来自iframe
的网址。
如果Chrome可以做到这一点,那将会很棒。
有人知道为什么Firefox和Chrome会有所不同吗?
下面内容的脚本(Firefox和铬):
(function (undefined) {
'use strict';
var YoutubeExtActions = {
linkClickListener : function(e) {
if(e.button === 1) {
var link = $(e.target).closest('a');
if(link.length && link.attr('href') !== '#') {
var url = link[0].href;
if(url.match(/youtube.com\/watch/i) || url.match(/youtube.com\/embed/i)) {
e.preventDefault();
e.stopPropagation();
console.log("you got it: " + url);
}
}
}
}
}
window.addEventListener("click",YoutubeExtActions.linkClickListener,false);
})();
那JS在Chrome仅适用于普通的链接(而不是从I帧)
manifest.json的:
{
"content_scripts": [ {
"js": [ "jquery-1.11.3.min.js", "content_script.js" ],
"matches": [ "<all_urls>" ],
"run_at": "document_idle"
} ],
"description": "chromium youtube iframe get url",
"manifest_version": 2,
"name": "chromium youtube iframe get url",
"version": "1.0"
}