1

ajaxを介してdivの内容を外部ファイルに置き換えようとしています。私がそうするために使用しているコードは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<script type="text/javascript">
window.onload = function(){

    document.getElementById("aside").innerHTML="<img src='loadingImage.gif'>";

    var x = null;

    if (window.XMLHttpRequest) {
        var x = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        var x = new ActiveXObject('MSXML2.XMLHTTP.3.0');
    } else {
        // fallback
    }

    x.open("GET", "other_content_1.php", true);
    x.send("");
    x.onreadystatechange = function() {

        if(x.readyState == 4) {
            if(x.status==200) 
                document.getElementById("aside").innerHTML = x.responseText;
            else 
                document.getElementById("aside").innerHTML = "Error loading document";
        }
    }
} 
</script>
</head>

<body>
<div id="aside">This is other content</div>
</body>
</html>

私の質問:

JavaScript が有効になっている場合、上記のコードは正常に機能しますが、JavaScript が無効になっている場合、php はそのファイルをロードする必要があります。どうすればいいですか?

4

3 に答える 3

1

JavaScript を使用せずにコードの後方互換性を確保する場合、JavaScript を使用する理由はまったくありませんAJAXaside文字列を要素に入れたいだけの場合は、次のようにします。

//first the PHP page 'other_content_1.php'
<?php
  $resp = 'Whatever String Response You Want';
?>
//now your other page
<?php
  include 'other_content_1.php';
?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
  <head>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
    <title>Test</title>
  </head>
<body>
  <div id='aside'><?php echo $resp; ?></div>
  <script type='text/javascript' src='should_be_external.js'></script>
<body>
</html>

これ以外にこれを実行したい場合は、PHP 応答を使用して、または処理onloadするためにフォームを送信することに注意してください。$_POST$_GET

于 2013-08-02T00:46:38.400 に答える
0

Web ページがブラウザーに表示され、JS がサポートされていないことが判明するまでに、PHP/サーバーは既にページを提供しています。これを試すことができます。

  • #aside 要素には、JS サポートがないことをユーザーに通知するテキストとリンクを含めることができ、別のページに移動できます
  • PHP はファイルをロードし、新しいページでコンテンツを提供できます。

JS がサポートされている場合、上記のコードはとにかく上記のリンクを置き換えます。

于 2013-08-02T00:35:09.127 に答える