4

3つの.jsファイルを含むsite.htmlページがあり、スクリプトが実行され、環境を準備し、.xmlファイルから別のm.htmlファイルを抽出し、次のコードを使用してこの生成されたm.htmlファイルを画面に表示します。

var dd=document.open("text/html","replace");
dd.write(htmlData);
dd.close();

site.htmlは次のようになります。

    <html>
    <head>
     <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
     <script type="text/javascript" src="file1.js"></script>
     <script type="text/javascript" src="file2.js"></script>
     <script type="text/javascript" src="file3.js"></script>
     <link rel="stylesheet" type="text/css" href="file4.css">
    </head>
    <body>
    _
    </body>
    </html>

次のように生成されたm.html:

<html>
<head>
   <meta name="viewport" content="user-scalable=no">
   <link rel="stylesheet" type="text/css" href="file4.css">
   <script type="text/javascript" src="uag.js"></script>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head> 
<body id="homebody">
<img class="background" src="a.jpg">
<div id="homebuttons">
<table>
<tr>
<td>
<a href="javascript:alert(typeof PL_open)"><img src="b.png"></a>
</td>

<td class="spacer">
</td>
<td>
<a href="javascript:PL_open('activate:a')"><img src="c.png"></a>
</td>
</tr>
<tr class="spacer">
</tr>
<tr>

<td>
<a href="javascript:PL_open('activate:b')"><img src="d.png"></a>
</td>
<td class="spacer">
</td>
<td>
<a href="javascript:PL_open('activate:c')"><img src="e.png"></a>
</td>
</tr>
</table>

</div>
</body>
</html>

は正しく表示されますが、ボタン(リンク)の1つを押すと、次のエラーメッセージが表示されます。オブジェクトが必要です:JScript-ウィンドウスクリプトブロック、1行目、char1。

最初のリンクを押すと、アラートボックスに「undefined」というテキストが表示されます。

PL_open()js関数はfile1.jsで定義されており、テストによると、m.htmlが画面に読み込まれるまで定義されています。

まったく同じコードは、chromeとsafaryで完全に機能します。

誰かが私に問題を指摘したり案内したりできますか?どんな助けにも感謝します!私の脳はすでに溶けています:)よろしくお願いします!

編集:

コメントしてくれてありがとう!!質問を投稿するときに誤って引用を削除したので、問題は「一重引用符の欠落」ではありません。

テストを行い、file1.jsをm.htmlに含めました。この場合、関数は実行されますが、予想どおり、無限ループに入ります。file.jsとuag.jsは大丈夫だと思います。必要に応じてとにかく投稿できます。そしてajaxの使用について...もっと説明できますか?私はそれを試してみたい。

4

1 に答える 1

2

だから私は(document.openの代わりに)ドキュメントの本文を変更するためにajaxを使用しています、そして今それは機能しています:)アドバイスをありがとうd4rkpr1nc3!ieが関数を認識しない理由はまだわかりませんが、この解決策は優れています。

于 2012-05-04T07:48:47.140 に答える