【发布时间】:2016-06-04 16:49:14
【问题描述】:
我制作了一个 Chrome 扩展程序,它使用我的 YouTube 订阅页面的 <iframe> 加载我的新标签页(我解决了 SAMEORIGIN 问题)并希望将文档的一个元素复制到另一个 <div> ,准确地说是#content 元素。这是我的代码:
Background.html
<html>
<head>
<script type="text/javascript" src="jquery-2.2.0.min.js"></script>
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="window.js"></script>
</head>
<body>
<iframe id="left" name="left"></iframe>
<div id="canvas"></div>
</body>
</html>
Window.js
$(document).ready(function(){
var $left = $('#left');
$left.attr('src', 'https://www.youtube.com/feed/subscriptions');
var $leftDoc = $left.contentWindow.document;
$leftDoc.querySelector('#content').clone().appendTo('#canvas');
});
Script.js
chrome.webRequest.onHeadersReceived.addListener(
function(info) {
var headers = info.responseHeaders;
for (var i = headers.length - 1; i >= 0; --i) {
var header = headers[i].name.toLowerCase();
if (header == 'x-frame-options' || header == 'frame-options') {
headers.splice(i, 1); // Remove header
}
}
return {
responseHeaders: headers
};
}, {
urls: ['*://*/*'], // Pattern to match all http(s) pages
types: ['sub_frame']
}, ['blocking', 'responseHeaders']
);
就像现在一样,YouTube 已加载,但我无法获取 <iframe> 中的文档,因为它将该属性称为 undefined。我试图让div#content 加载而无需其他任何东西,以便从我的新标签页导航。有任何想法吗?谢谢!
编辑:#content 是 div,顺便说一下,它会显示您的订阅供稿。
【问题讨论】:
标签: javascript jquery html iframe google-chrome-extension