是否可以調用提示是這樣的:而不是好的,以這種方式調用提示符()?
prompt('Enter your text here');
:
prompt('Enter your text here', '');
即而不會將建議的輸入傳遞給它?
是否可以調用提示是這樣的:而不是好的,以這種方式調用提示符()?
prompt('Enter your text here');
:
prompt('Enter your text here', '');
即而不會將建議的輸入傳遞給它?
是的,這是可以的。
的第二個參數prompt
方法是可選(見"window.prompt on MDN")。根據ECMAScript規範(ECMA-262,第4.3.9節),將值爲undefined
的變量賦予沒有賦值的變量。在prompt
方法中,將第二個參數保留爲undefined
還是將一個空字符串傳遞給它是沒有關係的:這兩個參數都會在提示中產生空字符串作爲默認值。
如果您想知道爲什麼這些信息在DOM標準(如W3C DOM)上不可用,答案是它是一種非標準的方法,它只是瀏覽器通常支持的(部分所謂的「DOM Level 0 「規格)。然而,即將到來的HTML 5可能會將提示(window.prompt
)定義爲標準方法(請參閱"6.4 User prompts")。
在documentation on MDC中,第二個參數被列爲可選項。
值是一個字符串,其中包含文本輸入字段中顯示的默認值。 這是一個可選參數。
那麼,當沒有提供價值時會發生什麼?那麼它是否設置爲「undefined」?順便說一句,這個資源非常棒。 – helpermethod
@OliverWeiler:不會設置佔位符文字。 – Matt
是的,這是有效的JavaScript。由於w3schools提到http://www.w3schools.com/jsref/met_win_prompt.asp它是可選的
W3schools在某些部分有大量錯誤 - 對於JS的東西,我建議使用MDN來代替:https://developer.mozilla.org/en/DOM/window.prompt –
當然這是正確的,但[w3schools不是真的權威](http://w3fools.com/)。 – Roman
更好的是,如何使用規範? –
是,第二個參數是可選的according to the HTML5 spec(我們目前必須的prompt
和alert
和這樣的規範是最接近):
的
prompt(message, default)
方法被調用時,必須釋放存儲互斥體,秀給用戶的給定消息,並要求用戶以字符串值作爲響應或中止。隨着方法等待用戶的響應,用戶代理程序必須暫停。 第二個參數是可選的。如果存在第二個參數(default
),則響應必須默認爲默認值。如果用戶中止,則該方法必須返回null
;否則,該方法必須返回用戶響應的字符串。
(我的重點)
我認爲答案是「是」,直到我只是看到,在IE7,這將產生具有「未定義」在輸入框中預填充代替。在IE7中快速試用一下JSFiddle:http://jsfiddle.net/ALw6r/
編輯:從評論看來,這似乎也是在IE8中破解的。
看到我的回答,'提示符'現在出現在(草案)規範中:HTML5,它不僅僅是HTML。 :-) –
謝謝。非常好的一點! (爲你的答案+1) – jsalonen
@ T.J。 Crowder:爲了完整性,我在HTML5上添加了關於我的答案的評論。再次感謝這個寶貴的發現! – jsalonen