2011-06-01 231 views
0

我正在解决一个Java脚本巫婆创建一个网页。它使用这个序列:如何更改document.createElement的值?

aTD=document.createElement("TH"); 
header.appendChild(aTD); 

的问题是,在剧本的一些点,这正好为:

aTD=document.createElement("<TH>"); 
aTD.appendChild(document.createTextNode(a4Phrase.TOTAL)); 
header.appendChild(aTD) 

在IE浏览器,这不是一个问题。但在Firefox中,页面创建在此时失败,因此仅显示页面的一半。我在最后几天试图找出一个解决方案,但没有成功。因此,这里是我的问题:

我怎样才能改变(使用Greasemonkey的

aTD=document.createElement("<TH>"); 

aTD=document.createElement("TH"); 

+0

验证这是不是你的网页,并且你只是希望用的Greasemonkey让页面在Firefox中工作。请注意,根据页面,这可能不是Greasemonkey可以轻松做到的事情。提供一个指向目标页面或pastebin.com源的链接。 – 2011-06-01 08:12:51

+0

这不是我的网页,但“错误”出现在办公室使用的一个网络收费(不可从外部获得)。它目前仅适用于IE浏览器 – catalel 2011-06-01 14:10:54

+0

您可以粘贴源代码,我们可以看到GM是否可以提供帮助。一般来说,GM可以覆盖页面的JS - 但只在大部分页面加载后(通常太晚)。有一些混乱(在SO搜索),但最好的方法取决于细节。 – 2011-06-01 14:15:41

回答

1

它看起来像一个肮脏的黑客,我想你的问题可以用另一种更准确的方式解决。但是你可以代理document.createElement方法:

var ce = document.createElement; 
document.createElement = function(el){ 
    if (el === '< TH>') { 
     el = 'TH'; 
    } 
    return ce.call(document, el); 
}; 

var aTD=document.createElement("< TH>"); 
aTD; 
+0

如果这确实是一个Greasemonkey应用程序,那么这个代码将不起作用。即使对GM进行了正确的修改,代码也可能无法及时启动。 OP需要澄清和指定。 – 2011-06-01 08:08:46

+0

看来这个脚本对Greasemonkey没有效果。谢谢 – catalel 2011-06-01 09:01:34