-4

ここでプログラミングロジックのどこが間違っているのでしょうか?

私は2つのphpファイルを持っています。ファイル 1 にはファイル 2 が含まれています。ファイル 1 は、ファイル 2 から php 関数を呼び出します。php 関数内には、大量の html があります。htmlは完全に機能します。関数の最後に、このJavaScriptがあります....

<script type="text/javascript">
alert('hello');
</script>

この JavaScript は「こんにちは」というアラートを出していません。私は何を間違っていますか?

前もって感謝します。

編集:最後の質問をねじ込んだため、新しい質問です。

理論的には、以下のコードは正しく動作しますか? (はい・いいえ)

<?php function AlertHelp(){ 
    ?><script>
        alert('help');
    </script><?
AlertHelp();
?>
4

1 に答える 1

3

あなたが提供した限られた情報を使用して、ここで大げさな推測をロングショットします。

PHP のincluderequireinclude_onceまたはrequire_once関数を介してファイルを「インクルード」しているのではなく、実際には AJAX を使用してページのコンテンツをロードしていると思います。

この場合、innerHTMLコンテンツをページに配置するために を使用していると仮定します。

突然解決策が明らかになりました:<script>によって追加されたタグinnerHTMLは解析も実行もされません。おそらく次のようなことができます:

// assume `result` is the variable containing the AJAX response and `elem` the element it goes in
elem.innerHTML = result; // this doesn't change
result.match(/<script[^>]*>([\s\S]*?)<\/script>/i,function(m) {eval(m[1]);});

evalただし、可能であれば避ける必要があることに注意してください。代わりにコールバックを使用するようにレイアウトを再設計することを検討してください。

于 2012-05-26T20:45:33.073 に答える