![](/img/trans.png)
[英]How do you define a type which could be any subtree of an object recursively?
[英]How do you define a string in JavaScript that could contain any character?
即使我在JavaScript中使用Salesforce變量,也不必知道Salesforce即可回答我的問題。 我想訪問一個密碼字段。 我可以通過在JavaScript中使用Salesforce變量{!Account.Password__c}
來做到這一點,如下所示:
var p = '{!Account.Password__c}';
我已經使用了很長時間,但是在某些情況下它不起作用。 唯一的問題是密碼可以包含任何字符(就像一個好的密碼一樣)。 因此,如果其中包含單引號,則此JavaScript將無法運行。 我可以用雙引號將其寫成:
var p = "{!Account.Password__c}";
但是它也可以包含雙引號。 它還可以包含正斜杠和/或反斜杠。
密碼字符串必須能夠采用以下任何一種:
Idon'tknow
pass"word"
/-\\_|)_/-\\_/\\/\\
"'!@#
+*co/rn
這是我的代碼:
var u = '{!Account.Email_Address__c}';
var p = escape(encodeURIComponent('{!Account.Password__c}'));
window.open('http://mywebsite.com/?&u=' + u + '&p=' + p,'_blank');
您正在尋找的是JSENCODE函數。 它將轉義引號,反斜杠以及其他可能弄亂Javascript字符串的東西。
var p = '{!JSENCODE(Account.Password__c)}';
如果您的Javascript在HTML標記內(例如,在'onclick'屬性中),則使用JSINHTMLENCODE函數,它將對字符<&>
進行html編碼。
這些內容記錄在Visualforce函數參考中。
您的問題是轉義。 您可以反斜杠字符串中的任何字符-因此,如果您擁有owowow"'!thisishard
作為密碼,可以直接將其分配給JS var,則可以這樣做:
var p = "owowow\"\'!thisishard";
其中涉及轉義。 你不需要做這個,如果你已經獲得來自其他來源的變量(比如,通過文本元素element.value
)。
這不會解決幾個問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.