私は2つの簡単なテストページを作成しました。一方はXMLHttpRequestを使用して他方をロードします。 (画像を表示するためにスリムボックスを使用しているページ) これは初めて完全に動作します。しかし、もう一度それを実行しようとすると、ボタンをもう一度押すことで、もう動作しません。私はページ全体をリロードすると、初めて再び動作します。スクリプトなどをアンロードまたは再ロードする必要がありますか? 私が知っているのは、スクリプトタグの倍数です。理由はわかりませんが、最初に動作させるための唯一の方法です。どのようにそれは最初だけ動作しますか?ajaxでロードされたJavascriptのみが初めて動作します
助けてください。
testajax.php
<html>
<head>
<link rel="stylesheet" href="SlimBox/css/slimbox.css" type="text/css" media="screen" />
<script id="script1" type="text/JavaScript"></script>
<script id="script2" type="text/JavaScript"></script>
<script type="text/javascript" src="SlimBox/js/mootools.js"></script>
<script type="text/javascript" src="SlimBox/js/slimbox.js"></script>
<script type="text/javascript">
function loadXMLDoc(Page)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDivFull").innerHTML=xmlhttp.responseText;
document.getElementById('script1').src = 'SlimBox/js/mootools.js';
document.getElementById('script2').src = 'SlimBox/js/slimbox.js';
}
}
xmlhttp.open("GET",Page,true);
xmlhttp.send();
}
</script>
</head>
<body>
<input id="Header2" type="button" onClick="loadXMLDoc('testImage.php')" name='Sok' value='Load' >
<div id="myDivFull"></div>
</body>
</html>
testImage.php
<a href='img/facebook-icon.png' rel='lightbox' cap='test'><img alt='' border='0' src='img/facebook-icon.png' /></a>
EDIT: gilly3によって提供される方法は、しかし、私はそれが仕事を得ることができない、別々のjsファイルと完全に働きました私は機能にGoogleのガジェットのスクリプト 'リンク'を追加する場合。これは多分別の方法で解決されるでしょうか?以下は私が働くことができないコードです。
function addScript(src)
{
var script = document.body.appendChild(document.createElement("script"));
script.src = src;
}
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDivFull").innerHTML=xmlhttp.responseText;
addScript('//www.gmodules.com/ig/ifr?url=http://www.mortgage-info.com/gadgets
/gadgetsmortgagecalculator.xml&synd=open&w=250&h=200&
amp;title=Mortgage+Calculator&border=%23ffffff%7C3px%2C1px+solid+%23999999&
amp;output=js');
}
ありがとうございます。
Pleeeease use jQuery – cambraca
スクリプトURLの末尾にnonceパラメータを追加しようとしましたか? – Pointy
なぜjavascriptファイルを再読み込みしていますか?私はそれを行うより良い方法があると確信しています。 –