php代码中的JavaScript脚本标记

时间:2013-04-10 14:37:25

标签: php javascript

我有一个页面(父级),它通过弹出窗口(子)

打开第二页

在第二页上,我有以下PHP代码,它从父页面获取HTML元素的值:

 $var=print_r("<script type='text/javascript'>var x=window.opener.document.getElementsByName('name1');document.write(x[0].value)</script>",true);   

当我回应变量$var时,我得到了我期望的结果。因此:

echo "test=" . $test;

...打印例如页面上的“费用”。

到目前为止一切顺利。

问题是当我尝试将此变量写入如下文件时:

$f=fopen("/mylog.txt","w+");
fwrite($f, $test);
fclose($f);

...然后,而不是$test的实际值(例如费用),

我在我的日志文件中获取了整个脚本标记,因此:

<script type='text/javascript'>var x=window.opener.document.getElementsByName('name1');document.write(x[0].value)</script>

假设带有'true'参数的print_r将值返回到我的$test变量,为什么要将确切的脚本标记写入日志文件?

我怎样才能克服这个?

3 个答案:

答案 0 :(得分:4)

当您echo浏览器的值时,它将运行JavaScript并显示结果。

将文件保存到文件时,不会执行JavaScript。

在这两种情况下,都会输出完整的脚本,但浏览器实际上是在运行脚本,而文本编辑器则不会。

答案 1 :(得分:1)

将客户端上的数据发送到服务器。您可以使用Ajax(如下所示)或表单。

$.post('myPHPfile.php',{name:window.opener.document.getElementsByName('name1')});

myPHPfile.php

$test=$_POST['name'];
$f=fopen("/mylog.txt","w+");
fwrite($f, $test);
fclose($f);

答案 2 :(得分:0)

好的,我通过改变url-string来完成所需的结果,该url-string用一个额外的变量(所需的变量)调用第二页然后,通过$ _GET,我检索这个值并且可以毫无问题地将它打印到我的日志文件中

非常感谢大家的快速回复:)