Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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
javascript函数在php echo中工作吗?_Php_Javascript_Html - Fatal编程技术网

javascript函数在php echo中工作吗?

javascript函数在php echo中工作吗?,php,javascript,html,Php,Javascript,Html,我正在清理我的代码,使它更统一。我在echo命令中放置了几个javascript函数。我惊讶地发现,在我完成这项工作之后,这些函数就不再工作了。我没有收到任何错误,只有当我浏览页面时,我才注意到我的函数不再工作。我还处于javascript的初级阶段,所以我不确定这是否是一个常见错误,但我找不到任何与之相关的东西 我把所有的回声都去掉,然后慢慢地加上更多的回声,直到问题再次出现。所以,我不确定我做错了什么 这些功能的目的是在所有内容上覆盖灰色,然后弹出一个小确认框,询问您是否要继续执行任务 ec

我正在清理我的代码,使它更统一。我在echo命令中放置了几个javascript函数。我惊讶地发现,在我完成这项工作之后,这些函数就不再工作了。我没有收到任何错误,只有当我浏览页面时,我才注意到我的函数不再工作。我还处于javascript的初级阶段,所以我不确定这是否是一个常见错误,但我找不到任何与之相关的东西

我把所有的回声都去掉,然后慢慢地加上更多的回声,直到问题再次出现。所以,我不确定我做错了什么

这些功能的目的是在所有内容上覆盖灰色,然后弹出一个小确认框,询问您是否要继续执行任务

echo '<script type="text/javascript">';
                echo 'function showPopUp(el) {';
                    echo 'var cvr = document.getElementById("cover")';
                    echo 'var dlg = document.getElementById(el)';
                    echo 'cvr.style.display = "block"';
                    echo 'dlg.style.display = "block"';
                    echo 'if (document.body.style.overflow = "hidden") {';
                        echo 'cvr.style.width = "100%"';
                        echo 'cvr.style.height = "100%"';
                    echo '}';
                echo '}';
                echo 'function closePopUp(el) {';
                    echo 'var cvr = document.getElementById("cover")';
                    echo 'var dlg = document.getElementById(el)';
                    echo 'cvr.style.display = "none"';
                    echo 'dlg.style.display = "none"';
                    echo 'document.body.style.overflowY = ""';
                echo '}';
echo '</script>';
额外信息:整个页面都在php标记中,我发现另一个不相关的函数也以同样的方式运行。两者相似的唯一方式是它们都使用var命令,并且都是函数。这可能是源头吗?

哦。我的天啊

贵公司的标准是否允许以下情况

echo <<<HTML
<script type="text/javascript">
    function showPopUp(el) {
        var cvr = document.getElementById("cover")
        var dlg = document.getElementById(el)
        cvr.style.display = "block"
        dlg.style.display = "block"
        if (document.body.style.overflow = "hidden") {
            cvr.style.width = "100%"
            cvr.style.height = "100%"
        }
    }
    function closePopUp(el) {
        var cvr = document.getElementById("cover")
        var dlg = document.getElementById(el)
        cvr.style.display = "none"
        dlg.style.display = "none"
        document.body.style.overflowY = ""
    }
</script>
HTML;
应该是

if (document.body.style.overflow == "hidden")
注意:您这样做的方式是在一行上打印整个javascript块。如果必须以这种方式打印,则必须在打印的每个字符串中添加分号或换行符(如有必要)。

哦。我的天啊

贵公司的标准是否允许以下情况

echo <<<HTML
<script type="text/javascript">
    function showPopUp(el) {
        var cvr = document.getElementById("cover")
        var dlg = document.getElementById(el)
        cvr.style.display = "block"
        dlg.style.display = "block"
        if (document.body.style.overflow = "hidden") {
            cvr.style.width = "100%"
            cvr.style.height = "100%"
        }
    }
    function closePopUp(el) {
        var cvr = document.getElementById("cover")
        var dlg = document.getElementById(el)
        cvr.style.display = "none"
        dlg.style.display = "none"
        document.body.style.overflowY = ""
    }
</script>
HTML;
应该是

if (document.body.style.overflow == "hidden")

注意:您这样做的方式是在一行上打印整个javascript块。如果必须以这种方式打印,则必须在打印的每个字符串中添加分号或换行符(如有必要)。

生成的JavaScript在语法上不正确-这些行既不以分号结尾,也不以换行符结尾。取代

echo 'var cvr = document.getElementById("cover");';
等等

此外,我还隐约记得在元素结束后需要有一个换行符。在PHP中,echo不会在末尾生成换行符,单引号中的字符串不允许使用转义序列,如\n。所以你需要做:

echo '<script type="text/javascript">'."\n";

生成的JavaScript在语法上是不正确的-行既不以分号结尾,也不以换行符结尾。取代

echo 'var cvr = document.getElementById("cover");';
等等

此外,我还隐约记得在元素结束后需要有一个换行符。在PHP中,echo不会在末尾生成换行符,单引号中的字符串不允许使用转义序列,如\n。所以你需要做:

echo '<script type="text/javascript">'."\n";
echo语句的问题在于缺少空格/分号:

echo 'var cvr = document.getElementById("cover")';
                echo 'var dlg = document.getElementById(el)';
                echo 'cvr.style.display = "block"';
在html中显示为:

var cvr = document.getElementById("cover")var dlg = document.getElementById(el)cvr.style.display = "block"
等等

这在javascript中没有意义。

echo语句的问题是缺少空格/分号:

echo 'var cvr = document.getElementById("cover")';
                echo 'var dlg = document.getElementById(el)';
                echo 'cvr.style.display = "block"';
在html中显示为:

var cvr = document.getElementById("cover")var dlg = document.getElementById(el)cvr.style.display = "block"
等等


这在javascript中是没有意义的。

Java函数“嗯?我想你的意思是说JavaScript。为什么你要把所有这些都放到echo语句中?正如其他答案所指出的,没有理由这么做。将javascript和HTML保留为普通javascript和HTML,并将PHP用于需要动态内容的部分。此外,如果您使用的是Firebug或webdeveloper工具或类似工具,您会立即在javascript控制台中看到错误。您的js将只回显到一行。您需要在输出的字符串中添加分号或换行符?我想你的意思是说JavaScript。为什么你要把所有这些都放到echo语句中?正如其他答案所指出的,没有理由这么做。将javascript和HTML保留为普通javascript和HTML,并将PHP用于需要动态内容的部分。此外,如果您使用的是Firebug或webdeveloper工具或类似工具,您会立即在javascript控制台中看到错误。您的js将只回显到一行。您需要在输出的字符串中添加分号或换行符。AFAIK您不需要在JS行的末尾添加分号。而且在关闭标记后,您肯定不需要换行。@Neal我同意您应该这样做,但在语法上不需要换行。好吧,JS行的末尾不需要分号。在你关闭一个标签后,你肯定不需要换行。@Neal我同意你应该这么做,但从语法上来说这不是必要的。我给你安排了一点。^ ^ Neal sweet棒球模拟器顺便问一下。曲棍球模拟器什么时候上市?我想看看岛民和魔鬼到底有多坏!整个if区块有什么原因吗?我看不到宽度和高度在其他任何地方发生变化,所以它总是正确的,这很好@马特:-P你不觉得你很搞笑吗。哈哈,每个人都知道岛上的人会踢魔鬼的屁股,而游骑兵队每次都会出类拔萃。我给你安排了一点^尼尔甜蜜棒球模拟器顺便问一下。曲棍球模拟器什么时候出来?我想看看怎么做
岛上的人和魔鬼真的很坏!整个if区块有什么原因吗?我看不到宽度和高度在其他任何地方发生变化,所以它总是正确的,这很好@马特:-P你不觉得你很搞笑吗。哈哈,每个人都知道岛上的人会踢魔鬼的屁股,而游骑兵队每次都会出人头地。