【问题标题】:Calling JavaScript function from <a href> [duplicate]从 <a href> 调用 JavaScript 函数 [重复]
【发布时间】:2014-08-24 09:18:52
【问题描述】:

我正在尝试使用以下代码调用JavaScript 函数,参数为php 脚本

&lt;a href="javascript: submitform(&lt;?php echo $job; ?&gt;)"&gt;submit&lt;/a&gt;

任何建议将不胜感激

【问题讨论】:

  • 你不能 Javascript 是客户端。而php是服务器端。他们自己不会互相理解。
  • @ejay_francisco 我在 php 文件中编写了 javascript,但问题在于参数,应该如何编写

标签: javascript php html


【解决方案1】:

你也可以使用这两个中的任何一个

<a href="javascript:void(0);" onclick="submitform(<?php echo $job; ?>);">submit</a>
<a href="javascript:;" onclick="submitform(<?php echo $job; ?>);">submit</a>

【讨论】:

  • 如果$job 包含撇号怎么办?还是双引号? XSS 警报!
【解决方案2】:

可以直接用php写

<?php
    echo '<a href="#" onclick="javascript: submitform(\"'+$job+'\")">submit</a>';
?>

【讨论】:

    【解决方案3】:

    使用类似的东西

    <a href="#" onclick="submitform(<?php echo $job; ?>);"> submit</a>
    

    var job  ='';
    job  = <?php echo $job; ?>;
    <a href="#" onclick="submitform(job);"> submit</a>
    

    【讨论】:

    • 如果 $job = "); alert('lol hax'" 那就麻烦了。
    【解决方案4】:

    如果$job 不是数字,您的代码将失败。

    要将 PHP 变量放入 JavaScript 上下文,您必须使用json_encode。由于您在 HTML 属性中,您还必须使用htmlspecialchars

    所以:

    <a href="javascript:submitform(<?php echo htmlspecialchars(json_encode($job));?>);">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 2010-12-19
      • 2012-11-29
      相关资源
      最近更新 更多