繁体   English   中英

从PHP调用Javascript函数

[英]Call Javascript functions from PHP

一个常见的问题是,为了进行验证,您需要在服务器和客户端上运行相同的代码。 在JavaScript繁重的页面上,您还希望在双方之间共享许多其他功能。 由于您无法在客户端上运行PHP,因此,如果可以从PHP运行Javascript函数,我会很痛苦。 我正在考虑像Rhino这样的服务器端JS,但是我不知道如何将其包含到PHP中。

PHP具有V8扩展名: http : //php.net/manual/zh/class.v8js.php从未尝试过太多,但可能很有用

编辑:这是pecl包链接: http ://pecl.php.net/package/v8js

您可以使用服务器端的javascript服务(即node.js),并使用PHP对其进行调用,但这不是解决该问题的简单方法。 仅当它是一个大型应用程序时,验证逻辑中才会有大量交叉,才可能值得。

尝试在php中:

echo "<script type='text/javascript'>
         myfunction();
      </script>";

我和AlexeyKa一样。

我认为您无需在客户端和服务器上都运行JavaScript,而是需要采取相反的方法。 在服务器端创建验证代码,并在提交表单之前使用Ajax调用验证。 这样,您使用相同的代码进行验证(无重复),并且不必担心在服务器上运行JavaScript引擎。

另外,如果给客户端提供验证代码,然后在服务器上运行该验证代码,则只是在要求某人在验证代码中找到漏洞。 在服务器上保留验证可以使验证代码远离用户。

更新:

我没有意识到您的问题不只是验证。 这不是PHP解决方案,但是Google的Closure Tools是一项允许您的客户端与服务器相同的技术。 您编写UI模板并定义其工作方式(布局,验证,持久性),然后框架创建HTML,JavaScript和服务器代码。 这是为了确保您只编写一次代码,并且客户端和服务器之间的任何相似代码均由框架处理。

暂无
暂无

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

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