-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.php将被加载到带有 id 的 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 回答