[英]Embed Javascript in php file, syntax
我使用ajax將數據發布到php文件中,並在其中使用以下代碼進行循環。
我的部分代碼無法正確格式化onclick事件:
$result .= '<a href="#" onclick="$("#element").dialog("open");" ></a>';
我試圖用反斜杠轉義雙引號,但是沒有運氣。 使用反斜杠,在控制台中,我看到:以某種方式從不出現“ =”的地方,也打印了所有反斜杠。 代碼不起作用。
有人可以幫我弄清楚我在語法上的錯誤嗎? 謝謝。
解析HTML時,瀏覽器將讀取onclick="$("#element"
部分,並推斷該屬性onclick
等於"$("
,因為它認為找到了雙引號。因此,您需要進行轉義$(
之后的雙引號字符。由於您正在使用$result .= 'some_string'
(我想在此處使用單引號來體現),因此您無法在單引號引起來的字符串中轉義雙引號字符。因此,您將需要這樣的東西: $result .= '<a href="#" onclick="$(\\'#element\\').dialog(\\'open\\');" ></a>';
現在,PHP在渲染時會將\\'
轉換為'
,因此字符串的最終輸出為
<a href="#" onclick="$('#element').dialog('open');" ></a>
我希望這有幫助。
在您的字符串中有雙引號,然后是內容再次用雙引號引起來。 第二個引號應為單引號,但這將終止字符串。 因此,您將不得不逃脫它們。
所需的html代碼應如下所示:
<a href="#" onclick="$('#element').dialog('open');"></a>
為此,您必須將PHP代碼更改為例如以下內容:
$result .= '<a href="#" onclick="$(\'#element\').dialog(\'open\');"></a>';
雙引號應轉義
$result .= '<a href="#" onclick="$(\"#element\").dialog(\"open\");" ></a>';
另一種方法是
$result .= `<a href="#" onclick="$('#element').dialog('open');" ></a>`;
如果使用雙引號定義html屬性,則不能(按原樣)在屬性本身中使用它,而必須對其進行編碼。
$result .= '<a href="#" onclick="'.htmlspecialchars('$("#element").dialog("open");').'" ></a>';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.