作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我制作了一个 Chrome 扩展程序,可以使用 <iframe>
加载我的新标签页。我的 YouTube 订阅页面(我解决了 SAMEORIGIN
问题),并且想要将文档的一个元素复制到另一个 <div>
中,#content
准确地说是元素。这是我的代码:
背景.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
顺便说一句,它显示您的订阅源。
最佳答案
您似乎在 jQuery 对象上使用 contentWindow
等 native 方法,而不是等待 Iframe 加载,您想要的是更多
$(document).ready(function(){
var $left = $('#left');
$left.on('load', function() {
$(this).contents().find('#content').clone().appendTo('#canvas');
});
$left.attr('src', 'https://www.youtube.com/feed/subscriptions');
});
关于javascript - 如何在加载后从 iframe 中选择内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35567558/
我是一名优秀的程序员,十分优秀!