繁体   English   中英

从脚本中运行外部.js文件中的javascript函数? (由src =附加)​​使用PHP

[英]Running a javascript function that is in an external .js file from within the script? (attached by src=) Using PHP

我正在使用PHP代码在网页的标签中生成标签。

我使用的是PHP,因此如果设置了特定的GET变量(在本例中为'savedsearch'),它将从我要附加到网页的外部javascript文件中运行功能。

这是我正在使用的代码:

<?php
//check if a saved search has been used
if (isset($_GET["savedsearch"])) {
    $savedsearch=$_GET["savedsearch"];
    echo "<script type='text/javascript' src='search.js'>
    window.onload=sendsearch($savedsearch);
    </script>";
}
else {
    echo "<script type='text/javascript' src='search.js'></script>";
}
?>

这不起作用(如果设置了savesearch,则不运行该功能)...正在运行这样的功能吗?

还有什么其他方法可以在页面正文中没有任何javascript或PHP的情况下执行此操作?

感谢您的帮助,并在此先感谢。

如果您的脚本标签具有src属性,则该标签内的代码不会执行,则必须添加另一个标签来执行该代码,脚本标签不能用于获取脚本和运行内联脚本。

您还正在将sendsearch()的结果分配给不是函数的window.load 这种工作方式唯一的原因是因为您真的不需要等待案例中的onload事件吗? 它是在解析脚本时调用的,而不是在window.onload事件之后。

另外,请确保在$savedsearch上调用json_encode ,这将防止XSS和字符串转义问题(同时在字符串周围添加引号)。

<?php
//check if a saved search has been used
echo "<script type='text/javascript' src='search.js'></script>";
if (isset($_GET["savedsearch"])) {
    $savedsearch=json_encode($_GET["savedsearch"]);
    echo "<script type='text/javascript'>
       // If you don't need to wait for the onload event
       sendsearch($savedsearch);
       // If you do need to wait for the onload event
       window.onload = function(){
         sendsearch($savedsearch);
       };
    </script>";
}
?>

你为什么不尝试:

<?php
//check if a saved search has been used
if (isset($_GET["savedsearch"])) {
    $savedsearch=$_GET["savedsearch"];
    echo "<script type='text/javascript' src='search.js'></script>
          <script>
            window.onload=sendsearch($savedsearch);
          </script>
         ";
}
else {
    echo "<script type='text/javascript' src='search.js'></script>";
}
?>

一次在script标记中同时包含src和content是不可靠的。

我不确定其他人的答案中概述的内容/源代码问题,但除非您的sendsearch函数返回一个函数 ,否则它将无法正常工作。 您需要改为以下内容:

window.onload=function(){sendsearch($savedsearch)};

这提供了可以在onload事件时运行的功能。

根据其他答案,这可能需要与将javascript拉入不同的标记结合使用-我不知道该如何工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM