如何在我的扩展程序中使用iframe嵌入youtube频道页面?

时间:2018-01-05 14:51:33

标签: iframe youtube firefox-addon firefox-webextensions x-frame-options

我正在创建扩展程序以使用标记整理youtube频道。它有像这样的URL的角度前端

  

MOZ延伸://f78b3bd9-a210-41c5-9d8d-9b7ab3717f6e/index.html#/channel/UCtinbF-Q-fVthA0qrFQTgXQ

我想使用iframe嵌入频道的页面,但安全政策不允许我这样做。

  

X-Frame-Options拒绝加载:https://www.youtube.com/不允许跨源框架。

所以我尝试修改X-Frame-Options,但它没有改变任何东西(不添加标题)。

我做了什么:

1添加了对manifest.json的权限:

“的WebRequest”, “:// .youtube.com / ”, “://www.youtube.com/*”

2在background.js中写了一些代码

function addFramePermissions(e) {
    console.log("Loading url: " + e.url);

    var allowedHeaders = [];

    for (var header of e.responseHeaders) {
        if (header.name.toLowerCase() !== "x-frame-options") {
            allowedHeaders.push(header);
        } else {
            console.log('x-frame-options found!!!');
        }
    }

    e.responseHeaders = allowedHeaders;

    return { responseHeaders: e.responseHeaders };
}


browser.webRequest.onHeadersReceived.addListener(
    addFramePermissions,
    {
        urls: [
            "*://*.youtube.com/*",
            "*://youtube.com/*"
        ]
    },
    ["blocking", "responseHeaders"]
);

代码到达功能,我可以看到“x-frame-options found !!!”在控制台中,但是firefox的网络监视器显示x-frame-options存在且值为SAMEORIGIN

1 个答案:

答案 0 :(得分:0)

我在Chrome中运行了我的扩展程序,Chrome说我忘了添加" webRequestBlocking"在权限。谢谢,Chrome!