2015-11-09 75 views
0

我增加了一個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" 
} 

回答

1

爲了讓iframe中autoinserted內容腳本manifest.json中添加"all_frames": true

"content_scripts": [ { 
    "js": ................., 
    "matches": ................., 
    "all_frames": true 
} ], 

文檔:

相關問題