【问题标题】:how to call a onclick function in <a> tag?如何在 <a> 标签中调用 onclick 函数?
【发布时间】:2013-10-18 09:54:18
【问题描述】:

我想在点击 1 时打开一个新窗口

$leadID = "<a href='javascript:onclick=window.open(lead_data.php?leadid=1, myWin, scrollbars=yes, width=400, height=650);'>1</a>";

它没有显示错误。有没有其他方法可以打开新窗口。

这是小提琴 http://jsfiddle.net/ankurdhanuka/uwypv/

提前致谢。

【问题讨论】:

  • 您可以使用target="_blank"打开新窗口。
  • 给出拒绝投票的理由
  • 好吧,我没有投反对票,但你得到了这些,因为你的问题是一个低质量的帖子
  • @ĐēēpakSharmã 如何提高帖子质量?
  • 也许通过提出更高质量的问题...

标签: javascript php html


【解决方案1】:

您应该阅读onclick html 属性和window.open() 文档。下面是你想要的。

&lt;a href='#' onclick='window.open("http://www.google.com", "myWin", "scrollbars=yes,width=400,height=650"); return false;'&gt;1&lt;/a&gt;

JSFiddle:http://jsfiddle.net/TBcVN/

【讨论】:

    【解决方案2】:

    有趣!这里有一些事情要梳理:

    • $leadID 似乎是一个 php 字符串。确保它打印在正确的位置。还要注意传递自己的字符串所涉及的所有风险,例如cross-site scriptingSQL injection 漏洞。面向 Internet 的生产代码不运行 on a solid framework 真的没有任何借口。
    • Javascript 中的字符串(如 PHP,通常是 HTML)需要包含在 "' 字符中。由于您已经在"' 中,因此您需要逃脱任何您选择的地方。 \' 转义 PHP 引号,&amp;apos; 转义 HTML 引号。
    • &lt;a /&gt; elements 通常用于“超”链接,并且几乎总是带有 href 属性来指示其目的地,例如:&lt;a href="http://www.google.com"&gt;Google homepage&lt;/a&gt;
    • 您试图在用户点击时加倍观看。为什么?因为标准点击会激活链接(导致浏览器导航到任何 URL,即使是执行 Javascript 的 URL),并“触发”onclick 事件。提示:将 return false; 添加到 Javascript 事件以禁止默认行为。
    • 在 Javascript 中,onclick 本身没有任何意义。那是因为onclick is a property,而不是一个变量。必须有对某个对象的引用,所以它知道我们在说谁的onclick!一个这样的对象是window。你可以写&lt;a href="javascript:window.onclick = location.reload;"&gt;Activate me to reload when anything is clicked&lt;/a&gt;
    • 在 HTML 中,onclick 可以单独表示某些东西,只要它是 HTML 标记的一部分:&lt;a href="#" onclick="location.reload(); return false;"&gt;。我敢打赌你已经想到了这一点。
    • 这两种= 分配之间的巨大差异。 Javascript = 需要一些尚未运行的东西。如果你想现在指定一些参数,你可以将东西包装在 function 块中以指示稍后应该运行的代码(就像我没有在上面使用 reload 一样):&lt;a href="javascript:window.onclick = function () { window.open( ... ) };"&gt; ...
    • 您知道您甚至不需要使用 Javascript 来指示浏览器在新窗口中打开链接吗?为此有一个特殊的目标属性:&lt;a href="http://www.google.com" target="_blank"&gt;Google homepage&lt;/a&gt;

    希望这些有用。

    【讨论】:

    • 没有人说我没试过! &lt;a href='#' onclick='window.open("lead_data.php?leadid=1", "myWin", "scrollbars=yes, width=400, height=650"); return false;'&gt;1&lt;/a&gt;
    • @AnkurDhanuka 没用?你不热衷于学习,是吗?
    【解决方案3】:

    单独尝试 onclick 函数,它可以让您访问执行您的函数,该函数可用于打开一个新窗口,为此您首先需要创建一个 javascript 函数,您可以在其中定义它并在您的锚标记中您只需需要调用你的函数。

    示例:

    function newwin() {              
     myWindow=window.open('lead_data.php?leadid=1','myWin','width=400,height=650')
    }
    

    看看如何从你的锚标签调用它

    <a onclick='newwin()'>Anchor</a>
    

    更新

    访问这个 jsbin

    http://jsbin.com/icUTUjI/1/edit

    这可能会帮助您了解您的问题。

    【讨论】:

    • 我需要在函数中传递参数吗...?
    • 不,你只需要调用你的函数,函数newwin()会处理你所有的问题
    • 但是我需要从 php 传递值而不是 1
    【解决方案4】:

    使用onclick 作为a 的属性,而不是href 的一部分

    <a onclick='window.open("lead_data.php?leadid=1", myWin, scrollbars=yes, width=400, height=650);'>1</a>
    

    小提琴:http://jsfiddle.net/Wt5La/

    【讨论】:

    • path/url 属性还需要一些引号。
    • 请为它制作小提琴
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2018-01-23
    相关资源
    最近更新 更多