Код не будет отображаться в IE, пока я не обновлю

0

У меня проблема с куском JavaScript, который не будет корректно вести себя в IE. Все остальные платформы в порядке.

Существует простой JavaScript, который принимает системное значение и использует это, чтобы увидеть, зарегистрирован ли пользователь и помещает HTML в div соответственно. Однако он не будет загружаться в IE до тех пор, пока я не сделаю Ctrl-F5.

Любая помощь была бы замечательной, так как я на самом деле был в тупике.

<div id="registered-output"></div>

<script type="text/javascript">

window.onload = loadScript();

function loadScript() {

var currentuser = window.parent._jive_current_user.displayName;  
var useremail = window.parent._jive_current_user.username;  

if (currentuser == 'ANONYMOUS') {
document.getElementById("registered-output").innerHTML = "<div class='register-container'><div class='register-header'><div class='register-header-holder'><p class='header-text'>Register</p></div><div class='register-toptext'><p class='header'>Why join our community?</p></div></div><div class='register-ul'><ul class='register'><li class='register-li'>Here one good reason</li><li class='register-li'>Networking with others</li><li class='register-li'>Start or join a discussion</li><li class='register-li'>Tech notes</li><li class='register-li'>Networking with others</li></ul></div><div class='register-join'><a href='https://mentor.jiveon.com/create-account.jspa'><img src='http://mentor.jiveon.com/resources/statics/15536/join-here-smaller.png'></a></div></div>";
}
else if (currentuser != 'ANONYMOUS') {
document.getElementById("registered-output").innerHTML = "<div class='register-container-stuff'><div class='register-header'><div class='register-header-holder'><p class='header-text'>Personal Settings</p></div><div class='register-toptext'><p class='header'>Welcome " + useremail + "</p></div></div><div class='register-ul-two'><table><tr><td><img src='/resources/statics/15536/content.png'></td><td>&nbsp;</td><td><a target=_new href='people/" + window.parent._jive_current_user.username + "/content');'>Your Content</a></td></tr><tr><td><img src='/resources/statics/15536/activity.png'></td><td>&nbsp;</td><td><a target=_new href='people/" + window.parent._jive_current_user.username + "/activity');'>Your Activity</a></td></tr><tr><td><img src='/resources/statics/15536/connections.png'></td><td>&nbsp;</td><td><a target=_new href='people/" + window.parent._jive_current_user.username + "/people');'>Your Connections</a></td></tr><tr><td><img src='/resources/statics/15536/places.png'></td><td>&nbsp;</td><td><a target=_new href='people/" + window.parent._jive_current_user.username + "/places');'>Your Places</a></td></tr><tr><td><img src='/resources/statics/15536/bookmarker.png'></td><td>&nbsp;</td><td><a target=_new href='people/" + window.parent._jive_current_user.username + "/bookmarks');'>Your Bookmarks</a></td></tr></table></div></div>";
}
}

</script>

Я написал этот код для размещения внутри виджета HTML на платформе Jive.

  • 3
    Вы имеете в виду window.onload = loadScript; , Потерять () . Вы хотите установить свойство onload для функции, а не запускать его и установить для onload его возвращаемое значение ( undefined ).
  • 0
    Ну, это работает, потому что сама страница загружается очень быстро. Если между ними будет много разметки и логики или просто медленное соединение, это не сработает и в других браузерах.
Показать ещё 1 комментарий
Теги:
internet-explorer

2 ответа

3
Лучший ответ

Ваш код

window.onload = loadScript();

неправильно. Вы вызываете функцию, не назначая ее. Отбросьте ()

window.onload = loadScript;
2
    window.onload = loadScript(); // will cause the function to execute immediately
    window.onload = loadScript; // will cause the function to execute on load

Просто удалите(), чтобы функция могла работать как обратный вызов.

Сообщество Overcoder
Наверх
Меню