簡體   English   中英

Javascript中的問題引號callFunction()

[英]Problematic Quotes in Javascript callFunction()

我想知道如何保持通過callFunction()傳遞給JavaScript函數的文本中具有單引號和雙引號的功能嗎? 以下所有三種情況似乎都失敗了。

可以將單引號和雙引號混合使用,但是我希望能夠在文本塊中同時使用單引號和雙引號。 很好奇為什么瀏覽器在將html特殊字符傳遞給Javascript函數之前先對其進行評估。

謝謝羅賓

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>

<script type="text/javascript">

function callFunction(text){

    alert(text);

}

</script>

</head>

<body>

<!--This will not work due to &#039;-->
<a href="javascript: callFunction('Robin&#039;s Text')">Robin&#039;s Text</a> 

<br />
<br />

<!--And this will not work due to &#034;-->
<a href='javascript: callFunction("Robin&#034;s Text")'>Robin&#034;s Text</a>

<br />
<br />

<!--Trying with a slash but not working either-->
<a href='javascript: callFunction("Robin\'s Text")'>Robin's Text</a>

</body>
</html>

謝謝大家的建議。 有了它,我找到了一個可行的解決方案。 似乎同時使用反斜杠和HTML特殊字符將使其正常工作。 我不確定為什么兩者都需要?

<!--Using HTML Special Characters (&#039;) alone will not work-->
<a href="#" onClick="callFunction('Robin&#039;s Text')">Robin&#039;s Text</a>

<br />
<br />

<!--Using backslash (\) alone will not work-->
<a href="javascript: callFunction('Robin\"s Text')">Robin"s Text</a>

<br />
<br />

<!--But using a combination of both will work!-->
<a href="javascript: callFunction('Robin\&#034;s Text')">Robin"s Text</a>

假設JS函數的輸入將由機器生成,那么您應該從服務器轉義輸入,然后在客戶端取消轉義,如下所示:

HTML:

<a href="#" onclick='callFunction("Robin%27s%20Text")'>Robin's Text</a>
<br>
<a href="#" onclick='callFunction("Robin%22s%20Text")'>Robin"s Text</a>

JS:

function callFunction(text){
    alert(decodeURIComponent(text));
}

請參閱以下工作代碼:

JSFiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM