Сбой, потому что это недопустимый HTML, когда он заканчивает вывод:
<body onload="<script language = javascript> alert('Hello') <script>">
Редактировать: Я полностью изменил свой ответ на основе поддержки от @ Джастин Джонсон
При использовании PHP для работы с JavaScript я стараюсь как можно скорее перейти на собственный JavaScript. Вместо того, чтобы пытаться echo
сложных операторов JS из PHP, попробуйте передать данные в JS и позволить ему делать всю работу.
Кроме того, использование атрибутов события HTML (onload
, onclick и т. Д.) Считается плохой формой. Лучше прикрепить ваше событие к объекту, используя IE attachEvent
и W3 addEventListener
.
<script type="text/javascript">
// Store PHP array as JavaScript array in JS variable
var messages = <?php echo json_encode($arr) ?>; // echos ["...","..."] etc.
function trigger_popups(){
for(var i = 0; i < messages.length; i++){
popup_show( messages[i], 'popup_drag', 'popup_exit', 'screen-top-left', 20, 20);
}
}
if(window.attachEvent)
window.attachEvent('onload', trigger_popups); // IE
else
window.addEventListener('load', trigger_popups, true); // Other Browsers
</script>