-1

在php中,如果我输入以下行

echo "<script type='text/javascript'>[javascript code here]</script>";

我可以假设无论我将它放在 php 文件中的哪个位置,都将始终执行 javascript 代码吗?假设 php 语法有效并且该行被执行(它不受某些条件的限制)

编辑:我有一个 php 文件,其中有一些 javascript 代码,alert('ok');但消息框从未出现。我想知道代码是否真的被执行并且浏览器在页面更改时关闭了消息框。

4

4 回答 4

3

不。

  • 您可以将它放在不输出 HTML 的 PHP 文件中(例如 PDF 文档或 zip 文件)。
  • 你可以把它放在一个header()调用之上并打破标题
  • 你可以把它放在一个if语句体中,所以它只会有条件地被包含
  • 你可以把它放在一个<style>元素中,所以它会被视为无效的 CSS
  • ETC

PHP 只是输出东西。如果你想让它输出一个<script>元素,那么你必须把它放在将要输出的地方,并且放在输出它有意义的地方。

于 2013-06-13T12:43:05.200 回答
0

如果插入的位置有效,则代码将被执行。如果您只是在那里编写 javascript 代码,它的行为将相同。

例如,我确定以下代码不起作用:

<ta<?php echo "<script type='text/javascript'>[javascript code here]</script>"; ?>ble>
于 2013-06-13T12:42:24.407 回答
0

你在这里弄乱了两双鞋。您的 javascript 代码不会在服务器端(执行 PHP 的地方)的任何地方执行。在 PHP prozessor 完成并将输出(包括您的 javascript 行)发送到客户端后,您的 javascript 将被执行。根据客户端浏览器的严格程度,您的<script>-element 需要位于HTML 页面的<head>or元素内<body>

于 2013-06-13T12:42:51.580 回答
0

是的,它将被执行,因为它作为 html 代码返回给浏览器,而浏览器并不关心它来自哪里。它也经常在 XSS 攻击中被滥用。

总而言之,它将一直执行,直到它是正确的 JS 并且它打印在 html 结构中的适当位置。

于 2013-06-13T12:41:31.753 回答