Javascript文档.write问题

k75qkfdt  于 2023-02-15  发布在  Java
关注(0)|答案(4)|浏览(120)

我试图获得下面的代码行,以帮助我写“<?php include('like.php'); ?>“在一个页面上,只有当访问者不使用移动终端,但它似乎没有工作。有什么想法如何让它工作?

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

ttygqcqt1#

当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/

y4ekin9u

y4ekin9u2#

正如其他人所提到的,你不能让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为id-of-element-to-add-content-to的HTML元素中,但是您可以使用任何符合您需要的选择器。如果您想替换整个页面正文,您可以使用$('body').load('like.php');
有关可用jQuery选择器的更多信息:http://api.jquery.com/category/selectors/

4c8rllxm

4c8rllxm3#

javascript在浏览器上执行,php在服务器上执行,因此,您需要添加一个if条件,然后包含

wkftcu5l

wkftcu5l4#

您可以测试用户代理服务器端,如果不是从移动终端添加该行

相关问题