如何在<a>标签中调用onclick函数?

Ank*_*uka 23 html javascript php

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

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

它没有向我显示错误.还有其他方法可以打开新窗口.

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

提前致谢.

Đēē*_*pak 26

单独尝试onclick功能,它可以让你访问执行你的功能,可以用来打开一个新窗口,为此你首先需要创建一个javascript函数,你可以在那里定义它,你只需要调用你的锚标记你的功能.

例:

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

了解如何从锚标记中调用它

<a onclick='newwin()'>Anchor</a>
Run Code Online (Sandbox Code Playgroud)

更新

访问这个jsbin

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

可能这会帮助你理解你的问题.


Wil*_*ney 10

有趣!这里有几件事要梳理:

  • $leadID似乎是一个PHP字符串.确保将其打印在正确的位置.还要注意传递自己的字符串所涉及的所有风险,例如跨站点脚本SQL注入漏洞.没有理由让面向Internet的生产代码不能在一个可靠的框架上运行.
  • 在Javascript中的字符串(如PHP中,通常HTML)需要被包围在"'字符.既然你已经都内"',你会想要逃避无论你选择.\'转义PHP引号,或&apos;转义HTML引号.
  • <a />元素通常用于"超级"链接,并且几乎总是带有href指示其目的地的属性,如下所示:<a href="http://www.google.com">Google homepage</a>.
  • 您正试图在观看用户点击时加倍观看.为什么?因为标准点击同时激活链接(导致浏览器导航到任何URL,甚至执行Javascript),并"触发"onclick事件.提示:添加return false;到Javascript事件以禁止默认行为.
  • 在Javascript中,onclick并不意味着它自己.那是因为onclick属性,而不是变量.必须有一些对象的引用,所以它知道onclick我们在谈论谁!一个这样的目标是window.你可以写<a href="javascript:window.onclick = location.reload;">Activate me to reload when anything is clicked</a>.
  • 在HTML中,onclick只要是HTML标记的一部分,就可以表示某些内容:<a href="#" onclick="location.reload(); return false;">.我打赌你记得这个.
  • 这两种=作业之间的巨大差异.Javascript =期待尚未运行的东西.function如果你想现在指定一些参数(就像我上面没有提到的那样reload),你可以将一个块包装在一个块中以指示应该稍后运行的代码:<a href="javascript:window.onclick = function () { window.open( ... ) };"> ....
  • 您是否知道甚至不需要使用Javascript来通知浏览器在新窗口中打开链接?有一个特殊的目标属性:<a href="http://www.google.com" target="_blank">Google homepage</a>.

希望那些有用.

  • @AnkurDhanuka没用?你不热衷于学习,是吗? (5认同)

Dan*_*Dan 5

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

<a href='#' onclick='window.open("http://www.google.com", "myWin", "scrollbars=yes,width=400,height=650"); return false;'>1</a>
Run Code Online (Sandbox Code Playgroud)

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