如何使用jQuery获取iframe内容(html)并另存为变量?

时间:2014-08-13 03:13:18

标签: jquery iframe

问题:每当我调整窗口大小时,Wordpress网站上的推特小部件都会消失。我认为这是由一些主题附带的脚本引起的。 (在窗口小部件消失后,如果我看到源代码,我仍然会有<iframe><head></head><body></body></iframe>个标记,但<head></head><body></body>内的内容已消失了)

所以我试图通过保存iframe的<head></head><body></body>的html内容来解决这个问题,并在检测到窗口调整大小事件时自动将它们附加到相应的标记中。

var head = jQuery('iframe.twitter-timeline').contents().find('head').contents();
var body = jQuery('iframe.twitter-timeline').contents().find('body').contents();


jQuery(window).on('resize', function(){
    jQuery('iframe.twitter-timeline').contents().find('head').append(head);
    jQuery('iframe.twitter-timeline').contents().find('body').append(body);
});

以上是我正在测试的代码,

如果我在Chrome控制台中键入jQuery('iframe.twitter-timeline').contents().find('body').contents();部分,我可以获取内容,并且可以将其保存在变量中,并按照我想要的方式实现完整功能。

但是,如果我将上述脚本保存在footer.php文件中并实现,那么它根本不起作用。此外,当我尝试检查变量,头部和身体中的内容时,Chrome控制台不返回任何内容(空变量)。

有人可以告诉我, 如果我朝着正确的方向前进?还是有一种更好(更安全/更合适)的方式来解决这类问题? 我如何保存iframe的内容(html)?



========= 更新 //它已经解决了=============

我通过更改代码解决了这个问题

window.onload = function () {
    var head = jQuery('iframe.twitter-timeline').contents().find('head');
    var body = jQuery('iframe.twitter-timeline').contents().find('body');

    jQuery(window).on('resize', function(){
        jQuery('iframe.twitter-timeline').contents().find('head').append(head);
        jQuery('iframe.twitter-timeline').contents().find('body').append(body);
    }); 
};

我很确定它会以某种方式工作,因为它在chrome的控制台中运行,但是如同最初提到的那样,它无法使它在php文件中工作。 无论如何,jQuery(document).ready(function(){ // bla, bla, bla });对我来说并不起作用,但不知怎的window.onload = function(){}完全按我想要的方式工作。 所以问题已经解决了。

但感谢回复家伙。

0 个答案:

没有答案