Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php禁用javascript代码?_Php_Javascript - Fatal编程技术网

使用php禁用javascript代码?

使用php禁用javascript代码?,php,javascript,Php,Javascript,有没有办法使用特定的php代码禁用特定页面中的javascript代码?我需要确保页面中使用的所有JavaScript在运行时不会给出任何结果(甚至错误)。没有这种方法,因为PHP在服务器上运行,JavaScript在服务器完成部分工作后通过浏览器在客户端运行 您可以做的是确保您的JS没有错误或删除所有JavaScript。您可以在JavaScript周围抛出PHP条件,这样它们就不会显示在您的页面上: <script type="text/javascript"> <?php

有没有办法使用特定的php代码禁用特定页面中的javascript代码?我需要确保页面中使用的所有JavaScript在运行时不会给出任何结果(甚至错误)。

没有这种方法,因为PHP在服务器上运行,JavaScript在服务器完成部分工作后通过浏览器在客户端运行


您可以做的是确保您的JS没有错误或删除所有JavaScript。

您可以在JavaScript周围抛出PHP条件,这样它们就不会显示在您的页面上:

<script type="text/javascript">
<?php if($showJavascript): ?>
// executes the following function
myJavascriptFunc();
<?php endif; ?>

function myJavascriptFunc() {

}
</script>

//执行以下函数
myJavascriptFunc();
函数myJavascriptFunc(){
}
以及解决我评论中的任何问题:

<?php var showJavascript = <?php echo ($showJavascript) ? 'true' : 'false'; ?>;
<script type="text/javascript" src="myFile.js"></script>

在最后一种情况下,您应该检查myFile.js中showJavascript的布尔值。

为什么不发送这些特定页面的javascript?

最简单的方法(以及最脏、最慢的方法)是在页面开始时打开,然后在最后回显缓冲区的内容之前,通过正则表达式、html解析器或两者的组合删除所有javascript痕迹

<?php
    ob_start();

    // your code here

    $output = ob_get_contents();
    ob_end_clean();

    // Purge your $output here, remove all <script> tags, onclick events, etc.

    echo $output;
?>


如何清除输出已经被回答了很多次。

s的答案是正确的,但是如果你的代码中有一个完整的javascript,那将是一件痛苦的事情。别担心,我给你+1回答你的问题,为什么你不接受答案。接受回答并从每个问题中获得2分这对
中包含的外部JS文件不起作用,但是如果您将条件作为一个整体围绕整个声明块抛出,它将起作用。您还可以在包含myscript.js之前设置一个全局变量,并检查该变量的文件。