在锚点的href属性中,“javascript:;”和“javascript:”有什么区别?
;
的JavaScript文件之间的区别相同。eval("");
//undefined
eval(";");
//undefined
JSON.parse("");
//SyntaxError: Unexpected end of input
eval("");
//undefined
:P
javascript:
表示伪协议,可以用于评估 JavaScript。因此,在其后面添加一个分号等于包含空表达式;
的脚本,它什么也不做。如果在javascript:
后面没有任何其他内容,则是一个空脚本,也什么也不做。在这两种情况下,返回值都是undefined
,这很重要,因为javascript:
url返回其他内容会导致页面内容被替换为它返回的内容。
但是,您根本不应该使用javascript:
urls - 它们已被弃用。请使用onclick
和有用的href或#
(如果没有非js版本的链接)。在这种情况下,请记得防止默认事件。
javascript:
返回的内容所替换,尝试使用javascript: 10
或javascript: 'google.com'
,它们都不会有任何作用。 - dhblahreturn false;
或者函数会抛出异常,这将导致一个难以解决的错误。 - dhblahpreventDefault()
(我通常在事件处理程序的第一行中执行它,如果它应该无条件执行),那么抛出异常不会成为问题。 - ThiefMaster10
而非之前的内容。 - ThiefMasterjavascript:
表示接下来要执行JavaScript语句,而不是跳转到另一个页面。 ;
是JavaScript语句的结尾标志。然而,;
本身并不会执行任何操作,因此这是一个空操作。
javascript:;
是带有附加分号的 javascript:
。除此之外,没有任何区别。