我在后面的代码中生成了一个锚标记,用
调用一个函数href="javascript:blah('string',this);"
我需要与对象进行交互,但它似乎没有正确返回。当我提醒它时它返回“对象窗口”并调用this.id返回undefined(锚有一个ID)
任何想法?
由于
答案 0 :(得分:3)
不使用点击事件的href,而是使用内联onClick处理程序。这将为您提供正确的“此”对象。
<a href="javascript:void(0);" onclick="blah('string',this);">
答案 1 :(得分:1)
您使用的浏览器是什么?示例href
是您要生成的内容或源代码中显示的内容吗?
假设链接生成正确,这完全是一个JavaScript问题。
不同的浏览器具有稍微不同的事件处理程序实现。考虑使用JQuery来掩盖这些不一致性并给自己一个更容易的工作。
答案 2 :(得分:0)
href="javascript:blah('string',this);"
内部函数blah this
引用window
object
这样做
<a href="javascript:" id="myLink">
function handle()
{
// this refers to your link
}
document.getElementById('myLink').onclick=handle;
答案 3 :(得分:0)
即使禁用了javascript,您也可以使一切正常运行。
<a href="#objectToInteractWithOrAnUriWithoutTheHash" onclick="return blah(this);">test</a>
<script type="text/javascript">
function blah(link) {
var elementIdOrUri = link.href;
//do some crazy stuff.
//false will prevent the browser from visiting the link
return false;
}
</script>
由于在这种情况下使用href,如果禁用了javascript,则会访问该元素(如果它有一个锚点)或uri。否则将调用您的函数。