Плагин Textpattern hak_tinymce не работает в IE - PullRequest
0 голосов
/ 09 февраля 2009

Я установил плагин Textpattern hak_tinymce на веб-сайте, который я запускаю, и он отлично работает в Firefox, Chrome, Safari и Opera. Однако в IE область содержимого является серой (например, ее просто нет), и Javascript завершается с ошибкой:

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

Firebug не дает ошибок.

Я использую необъяснимую версию 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);

Понятия не имею, что это. Единственное объяснение, которое я смог найти в Интернете, указывает на то, что это связано с неиспользованием префикса www в URL-адресе, используемом для доступа к редактору, но, похоже, это не имеет значения.

Как мне решить эту проблему?

Ответы [ 2 ]

1 голос
/ 09 февраля 2009

Ну, вы можете попробовать включить отладчик сценариев MS

0 голосов
/ 10 февраля 2009

Ответ оказался ошибкой в ​​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;

Это решает проблему как для тела, так и для текстовых полей.

...