ссылки на домены работают правильно только в IE - PullRequest
0 голосов
/ 25 октября 2011

У меня есть функция javascript, которую я вызываю из события onClick изображения на моей странице.

По сути, функция устанавливает переменную, которая ссылается на элемент на той же странице.

вот как эта функция вызывается (обратите внимание, HTML-файл печатается с использованием PHP, но не думайте, что это повлияет на сам HTML-код):

 echo "<img src='site/images/apps/show.gif' onClick='apps()' id='appbutton' style='#'>"; 

вот что ссылается на скрипт:

<iframe frameborder="0" name="app_frame" src="site/apps.html" width="0%" height="100%" scrolling="no"></iframe>

и, наконец, вот как на него ссылаются и что с ним делается:

<script type="text/javascript">
 function apps()
 {
 var element = document.getElementById("app_frame");
 if (element.width == '0%')
 {
    parent.document.getElementById("frame").setAttribute("width","100%");
    parent.document.getElementById("app_frame").setAttribute("width","0%");
    parent.document.getElementById("appbutton").setAttribute("src","site/images/apps/show.gif");
parent.document.getElementById("wthrbutton").style.visibility="hidden";
 }
 else
 {
    parent.document.getElementById("frame").setAttribute("width","65%");
    parent.document.getElementById("app_frame").setAttribute("width","35%");
    parent.document.getElementById("appbutton").setAttribute("src","site/images/apps/hide.gif");
    parent.document.getElementById("wthrbutton").style.visibility="visible";
 }
 }
 </script>

Основная проблема в первой строке функции, var element = document.getelementbyid.

Firefox, Chrome и Safari все с этим сталкиваются, и ни одна из них, похоже, не устанавливает переменную, что делает оставшуюся часть скрипта бесполезной, поскольку все вращается вокруг переменной.

Кто-нибудь знает какой-либо другой способ установки этого элемента в качестве переменной, которая будет работать в этих браузерах?

Спасибо

1 Ответ

2 голосов
/ 25 октября 2011

Это потому, что нет ничего с идентификатором app_frame. Вы установили имя iframe на app_frame. Измените код iframe на:

<iframe frameborder="0" name="app_frame" id="app_frame" src="site/apps.html" width="0%" height="100%" scrolling="no"></iframe>

Статья, указывающая на эту причуду в IE

В документе MSDN о getElementById говорится, что он возвращает имена или идентификатор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...