読み込んだXMLのデータをもとにjsを実行する
動作ブラウザ
win | mac | linux |
n7 | m1 | e5 | e6 | o7 | n7 | m1 | e5 | s1 | n7 | m1 | k3 |
○ | ○ | × | ○ | × | ○ | ○ | × | × | ○ | ○ | × |
ソース
【jsdata.xml】
<script>
a=3
alert(a)
</script>
【loadjs.htm】
<script type="text/javascript">
<!--
/*==========================================================
//クロスブラウザ load関数
引数 : url XMLファイルのurl
func 読み込み成功時の起動関数名
戻値 : 読み込まれたXMLノードツリー
例 : loadFile( 'data.xml', func1 )
function func1(){alert('test')}
Support http://game.gr.jp/js/
*/
function loadFile(url,func)
{
if (window.ActiveXObject)
{
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async = false
if(xmlDoc.load(url)){func(xmlDoc)}
} else if ( document.implementation &&
document.implementation.createDocument )
{
var xmlDoc = document.implementation.createDocument("","",null)
xmlDoc.onload = function (){func(xmlDoc)}
xmlDoc.load(url)
}
return xmlDoc
}
//読み込んだXMLのデータをもとにjsを実行する
function doJs(xdoc)
{
//XML内の"script"という名前のタグの配列を作る
var wknode = xdoc.getElementsByTagName("script")
//scriptを読み込む
var scrStr = wknode[0].firstChild.nodeValue + ';'
//実行する
eval(scrStr)
}
//-->
</script>
<input type = "button"
value = "XML読み込み"
onclick= "loadFile('jsdata.xml',doJs)">