-1

<?php include('like.php'); ?>訪問者がモバイルデバイスを使用していないが、機能していないように見える場合にのみ、ページに「」と書くのに役立つ以下のコード行を取得しようとしています。それを機能させる方法に関するアイデア。

<script type="text/javascript">
<!--
if (screen.width > 699 {
document.write("<?php include('like.php'); ?>")
}
//-->
</script>
4

4 に答える 4

3

JavaScriptがドキュメントに書き込んでいるときには、手遅れです。PHPはすでにすべてをブラウザに送信しています。次善のアプローチは、AJAX呼び出しを行ってコンテンツをフェッチし、それをDOMに追加することです。

jQueryのようなJavaScriptフレームワークを使用する意思があると仮定すると、それは非常に簡単です。

if (screen.width > 699) {
    $.ajax({
        url      : '/like.php',
        dataType : 'html',
        success  : function(data) {
            $('#myContainer').html(data);
        }
    });
}

http://api.jquery.com/jQuery.ajax/

于 2012-10-12T21:11:51.207 に答える
1

他の人が述べているように、JavaScriptにPHPコードの一部を含めて実行させることはできません。PHPはサーバー側で実行されるため、ページがクライアントに提供される前に、提案したようにコードを<?php include('like.php'); ?>挿入すると、ドキュメントにプレーンテキストとして書き込むだけです。

ただし、特定の基準が満たされている場合は、Ajaxを介してコンテンツをロードし、like.phpそれをDOMに挿入することができます。

jQueryのようなライブラリを使用すると、.load()そのようなDOMにコンテンツをロードできるメソッドを提供するため、非常に簡単です。あなたはそれを次のようにすることができます:

// Wait for the DOM to be ready
$(function () {
    // Check the width of the screen
    if (screen.width > 699) {
        // Load the content and add the HTML to an element
        $('#id-of-element-to-add-content-to').load('like.php');
    }
});

上記の例では、のコンテンツはlike.phpidを使用してHTML要素に読み込まれid-of-element-to-add-content-toますが、必要に応じて任意のセレクターを使用できます。ページの本文全体を置き換えたい場合は、$('body').load('like.php');代わりに行うことができます。

利用可能なjQueryセレクターの詳細:http://api.jquery.com/category/selectors/

于 2012-10-12T21:14:41.563 に答える
0

javascriptはブラウザで実行され、phpはサーバーで実行されるため、if条件を追加してから含める必要があります

于 2012-10-12T21:12:19.273 に答える
0

モバイルデバイスからではない場合は、ユーザーエージェントサーバー側をテストし、その行を追加できます

于 2012-10-12T21:13:25.507 に答える