将点击函数添加到动态 HTML 链接
Adding onclick Functions to Dynamic HTML Links
我有一个程序可以动态地向表格添加链接。每个链接都是唯一的,用于在选中时显示 iframe:
function buildIframeLink(url){
var link = document.createElement('a');
link.setAttribute('href', '#');
link.setAttribute('onclick', 'displayIframe("' + url + '")');
link.className = 'iframeLink';
link.innerHTML = 'Open';
}
一旦建立了链接,我就会将其传递给不同的函数:
function displayIframe(url){
//creates iframe based on the URL
整个锚标记的创建方式如下:
<a class="iframeLink" href="#" onclick="displayIframe("http://localhost:8080/myapp/abc/xyz");">Open</a>
但是,当单击每个链接时,将返回引用错误:
ReferenceError: displayIframe is not defined
我的函数肯定是定义的;我读到这是动态创建的HTML内容的问题 - 是否有纯粹的javascript解决方案可以解决此问题?
注意 * 使用 link.onclick = displayIframe(url) 立即启动不适合我的应用程序的函数
这似乎工作得很好....
如果您对此有任何问题,请告诉我问题是什么,我将尝试为您解决它们并解释其背后的原因和解决方案。
您需要使用单引号将 url 包装到函数调用中,使用双引号会破坏 onclick 属性。
您当前的点击属性将显示为
onclick="displayIframe("
URL 之前使用的双引号用于关闭 onclick 属性。
反斜杠单引号('''+url+''')
将为您提供正确的输出:
onclick="displayIframe('http://localhost:8080/myapp/abc/xyz');"
工作演示
function buildIframeLink(url){
var link = document.createElement('a');
link.setAttribute('href', '#');
link.setAttribute('onclick', 'displayIframe('''+url+''');');
link.className = 'iframeLink';
link.innerHTML = 'Open';
document.getElementById('Demo_display').appendChild(link);
}
function displayIframe(url){
alert('Iframe url = '+url);
}
window.onload=function(){
buildIframeLink('http://localhost:8080/myapp/abc/xyz');
}
<div id="Demo_display"></div>
你可以使用闭包
link.onclick = (function( _url )
{
return function()
{
displayIframe( _url );
}
})( url );
尝试用单引号而不是双引号
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<script type="text/javascript">
function displayIframe(url){
alert(url);
}
</script>
<body>
<a class="iframeLink" href="#" Onclick="displayIframe('http://localhost:8080/myapp/abc/xyz');">Open</a>
</body>
</html>
相关文章:
- 如何使Javascript动态html表及其上的事件
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- Rails:如何在浏览器中显示动态html内容,而不会对其进行转义,也不会引起XSS攻击
- 如何使用jQueryAjax使用动态html输入texbox提交表单
- 使用Kendo的动态HTML元素绑定
- 使用jquery插入动态HTML后,单击不起作用
- jQuery.tmpl没有呈现动态html
- 使用jquery从JSON数据生成动态html
- jQuery自动完成显示不需要的动态html标记
- 使用JavaScript制作动态HTML页面以重定向到URL
- 在angular中,使用ng repeat生成动态html内容
- Dynatable与动态HTML标头断开
- 如何使用jQuery读取动态html表行
- 将点击函数添加到动态 HTML 链接
- 使用 Javascript 的动态 HTML:用不同的内容填充相同的 HTML 对象
- 如何在创建动态 HTML 页面时使用日期选择器
- 动态HTML元素-如何将表单提交到php
- JavaScript确认何时在表单中选择动态HTML字段
- 动态html表,但表头位于底部
- 如何在另一个java脚本函数中访问java脚本中动态html表中单元格的动态赋值