基本问题让我感到愚蠢,但是......,href中的正确语法是什么?
href:
<html>
<a href="javascript:navClickListener("navContent", "bodyContent" "http://somelink.com");"></a>
</html>
功能:
function navClickListener(appendE, target, gotoURL) {
//doing stuff
};
答案 0 :(得分:2)
当您真的必须使用内联JavaScript时,请使用不同的引号,例如'
或"
。
目前,HTML属性由双引号和JavaScript代码标记。
<a href="javascript:navClickListener("navContent", "bodyContent" "http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content");"></a>
Is effectively truncated to:
<a href="javascript:navClickListener("></a>
^ Because of this.
在这种情况下,由于您使用的是JavaScript- URI ,因此您也可以使用%22
代替双引号。
答案 1 :(得分:1)
在“href”属性中避免使用JavaScript会更好。
<a href='#' onclick='navClickListener("navContent", "bodyContent", "http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content"); return false;'>Click Me</a>
答案 2 :(得分:1)
使用javascript:void(0);
作为HREF值可防止用户单击锚点时发生跳跃或其他意外行为。使用单引号,因为JavaScript中有双引号。
<a href="javascript:void(0);" onclick='javascript:navClickListener("navContent", "bodyContent" "http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content");'></a>
或者,您可以通过绑定单击处理程序来完成JavaScript中的所有操作。这将允许您设置正常的HREF值,这对屏幕阅读器更好,并且仍然允许相同的功能。
<a href="http://192.168.1.34/wiki/index.php/Airworthiness_Directive#content" class="someclass"></a>
$(document).ready( function() {
$('.someclass').click( function(event) {
event.preventDefault();//Does the same thing as javascript:void(0); in the HREF value
var pageURL = $(this).attr('href');
navClickListener("navContent", "bodyContent", pageURL );
} );
} );