问题:每当我调整窗口大小时,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(){}
完全按我想要的方式工作。
所以问题已经解决了。
但感谢回复家伙。