2013-09-27 3 views
-1

Мой клиент ставит наш ниже код JS на своем веб-сайте в <head> и жалуется, что наши теги не стреляют. Ниже приведен пример кода от клиента:окно onload конфликтует с телом onload javascript

<html> 
    <head> 
    <script type="text/javascript"> 
    function create() { 
    try { 
    var baseURL = "https://serv2ssl.vizury.com/analyze/analyze.php?account_id=VIZVRM1125"; 
    var analyze = document.createElement("iframe"); 
    analyze.src = baseURL; 
    var node = document.getElementsByTagName("script")[0]; 
    node.parentNode.insertBefore(analyze, node); 
} catch (i) { 
} 
} 
var existing = window.onload; 
window.onload = function() { 
if (existing) { 
    existing(); 
} 
create(); 
} 
    </script> 
</head> 

<body onload="javascript:clientfunction();"> 
<script type="text/javascript"> 

function clientfunction() 
{ 
    //client code is replcad here 
    document.write("Hello testing"); 
} 
</script> 

    </body> 
</html> 

На странице Load clientfunction() зовёт, наша create() функция не стреляя.

Пожалуйста, кто-нибудь может помочь мне, почему наши теги не стреляют и что альтернативное решение этой проблемы?

+0

Подробнее о [window.onload против <тела OnLoad = "" />](http://stackoverflow.com/a/191318/684932) – RaphaelDDL

ответ

-1

копия пасты и проверить ход следующие

<html> 
<head> 
<script type="text/javascript"> 
function create() { 
alert("Gdfg"); 
try { 
var baseURL = "https://serv2ssl.vizury.com/analyze/analyze.php?account_id=VIZVRM1125"; 
var analyze = document.createElement("iframe"); 
analyze.src = baseURL; 
var node = document.getElementsByTagName("script")[0]; 
node.parentNode.insertBefore(analyze, node); 
} catch (i) { 
} 
} 

window.onload=create; 
window.onload=clientfunction; 
</script> 
</head> 

<body onload="clientfunction(); create()"> 
<script type="text/javascript"> 

function clientfunction() 
{ 
alert("fdsfsdf"); 
//client code is replcad here 
document.write("Hello testing"); 
} 
</script> 

</body> 
</html> 
+1

Только нижний выполняет, не так ли? –

+0

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

+0

@SKV Оба работают нормально, потому что вы застряли в атрибуте 'onload' тега' ', но это абсолютный взлом. Вы также теряете ранее объявленную функцию window.onload, и код в вопросе делает определенные усилия для этого * not * в этом случае. –