我一直在努力通过阅读尽可能多的javascript代码来提高我的javascript技能.在执行此操作时,我有时会javascript:
在HTML元素标记中看到前缀附加到事件处理程序属性的前面.这个前缀的目的是什么?基本上,之间有任何明显的区别:
onchange="javascript: myFunction(this)"
和
onchange="myFunction(this)"
?
你的例子中可能没什么.我的理解是javascript:
锚标签(代替实际href
).您可以使用它,以便您的脚本可以在用户单击链接时执行,但不会启动导航回页面(空白href
与空白相结合onclick
).
例如:
Blah
而不是:
Blah
它不应该用在事件处理程序中(尽管大多数浏览器都是防御性的,并且不会惩罚你).我还认为它不应该用在锚的href属性中.如果浏览器支持javascript,它将使用正确定义的事件处理程序.如果浏览器没有,则javascript:链接将显示为已损坏.IMO,最好将它们指向一个页面,说明他们需要启用javascript来使用该功能,或者更好的是非javascript所需的功能版本.所以,像:
Ajax me
编辑:想到使用javascript的一个很好的理由:小书签.例如,这个将您发送到谷歌阅读器以查看页面的RSS订阅源:
var b=document.body; if(b&&!document.xmlVersion){ void(z=document.createElement('script')); void(z.src='http://www.google.com/reader/ui/subscribe-bookmarklet.js'); void(b.appendChild(z)); }else{ location='http://www.google.com/reader/view/feed/'+encodeURIComponent(location.href) }
要让用户轻松添加此Bookmarklet,您可以将其格式化为:
Drag this to your bookmarks, or right click and bookmark it!
仅应在href标记中使用。
这是荒谬的。
可接受的方式是这样的:
Blah
但是要回答OP,通常没有理由再使用javascript:
了。实际上,您应该附加脚本中的javascript事件,而不是内联在标记中。但这是我认为很纯粹的东西:-D