在a href JavaScript中传递变量的正确语法

Proper Syntax to Pass Vars in a href JavaScript

本文关键字:变量 语法 href JavaScript      更新时间:2023-09-26

基本问题,所以我觉得很笨,但。。。,href下面的正确语法是什么?

href:

<html>
<a href="javascript:navClickListener("navContent", "bodyContent" "http://somelink.com");"></a>
</html>

功能:

function navClickListener(appendE, target, gotoURL) {
    //doing stuff
};

当您真的必须使用内联JavaScript时,请使用不同的引号,例如'&quot;
目前,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而不是双引号。

演示:http://jsfiddle.net/pu3CM/

您最好在"href"属性中避免使用JavaScript。

<a href='#' onclick='navClickListener("navContent", "bodyContent", "http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content"); return false;'>Click Me</a>

使用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 );
    } );
} );