2009-02-09 48 views
0

我在我运行的网站上设置了Textpattern的hak_tinymce插件,它在Firefox,Chrome,Safari和Opera中很好用。然而,在IE浏览器的内容区域是灰色的(例如,它只是不存在),和JavaScript失败,此错误:Textpattern的hak_tinymce插件在IE中不起作用

Webpage error details 

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; 
    SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; 
    Media Center PC 6.0) 
Timestamp: Mon, 9 Feb 2009 11:35:09 UTC 

Message: Invalid argument. 
Line: 510 
Char: 2 
Code: 0 
URI: http://www.example.com/textpattern/tinymce/tiny_mce.js 

萤火虫没有给出错误。

我使用tiny_mce.js的非模糊的版本,修订1.158:

// Must have a src element in MSIE HTTPs breaks aswell as absoute URLs 
if (tinyMCE.isMSIE) 
    iframe.setAttribute("src", this.settings['default_document']); 

iframe.style.width = tinyMCE.settings['area_width']; 
iframe.style.height = tinyMCE.settings['area_height']; // ** THIS LINE! ** 

// MSIE 5.0 issue 
if (tinyMCE.isMSIE) 
    replace_element.outerHTML = iframe.outerHTML; 
else 
    replace_element.parentNode.replaceChild(iframe, replace_element); 

我不知道这是什么。我可以在网上找到唯一的解释,表明这与在用于访问编辑器的URL中不使用www-前缀有关,但似乎并不重要。

我该如何解决这个问题?

回答

0

答案竟然是在hak_tinymce的错误,而不是在tinyMCE的本身。 hak_tinymce指定文本区的一个Javascript数组使用周围的值引号的高度,这样的:

somesetting: "somevalue", 
height:"420", 

当tinyMCE的试图做的高度值运算,它在某种程度上变成一个字符串,当它应该有被视为一个整数。脚本调试器显示高度被设置为“420-42”,我没有弄明白。

然而,在hak_tinymce,加入管线276和277名之间的作品以下:

EOF; 
$js = preg_replace('/height:\"(\d+)\"/i', 'height:$1', $js); // added line 
return $js; 

这两者的身体和摘录文本域修复该问题。