五、对话框
1. 警告(Alert)
Q:我如何从JavaScript产生警告信息?
A:要产生警告信息,可以使用alert()方法:
alert('Message goes here')
上面的按钮由下面的代码创建:
- <formname=myform>
- <inputtype=buttonvalue="Tryitnow"
- onClick="alert('HellofromJavaScript!')">
- </form>
2. 确认对话框(Confirm Dialog)
Q:我如何通过JavaScript生成一个“确认/退出”对话框?
A:要生成“确认/退出”对话框,可以使用confirm()方法:
if (confirm("Your question)) {
// do things if OK
}
上面的按钮由一下代码创建:
- <formname=myform>
- <inputtype=buttonvalue="Tryitnow"
- onClick="if(confirm('Formattheharddisk?'))
- alert('Youareverybrave!');
- elsealert('Awisedecision!')">
- </form>
3. 提示输入对话框(Prompt)
Q:我如何通过JavaScript生成一个提示用户输入对话框?
A:可以使用prompt()方法生成提示用户输入的对话框:
prompt('Prompt text','Suggested input')
上面的按钮由下面的代码创建:
- <formname=myform>
- <inputtype=buttonvalue="Tryitnow"
- onClick="f=prompt('Enteryourname','Name');
- alert('Hello'+f+'!')">
- </form>
4. 退出的提示输入对话框(Canceled prompt)
Q:如何用户点击了退出按钮,那么prompt()将会返回什么值呢?
A:被退出的prompt()的返回值和浏览器有关。一些浏览器返回是null,而另外一些返回是空字符串''。因此,在调用prompt()时可以使用下面的代码:
- userInput=prompt('Prompttext','Suggestedinput');
- if(userInput!=''&&userInput!=null){
- //dosomethingwiththeinput
- }
5. 查找对话框(Find Dialog)
Q:在JavaScript中如何调用浏览器的查找对话框?
A:在Netscape Navigator 4.0或者更新的浏览中可以使用window.find()调用其查找对话框。点击试试:
这里例子的代码是:
- <form>
- <inputtype=buttonvalue="Find(Netscapeonly)"
- onClick="if(navigator.appName=='Netscape'
- &&parseInt(navigator.appVersion)>3)window.find();
- elsealert('Yourbrowserdoesnotsupport\'window.find()\'!')
- ">
- </form>
Internet Explorer不支持window.find()。不过在Internet Explorer和Netscape Navigator中都可以使用脚本查找文本,参见搜索文本。
6. 书签:添加到收藏夹(Bookmarks: Add Favorite)
Q:我如何调用浏览器的添加到收藏夹对话框?
A:在Internet Explorer 4.0或者更新版本浏览器中,你可以通过window.external.AddFavorite调用浏览器“添加到收藏夹”对话框:
window.external.AddFavorite('URL','bookmark text').
Netscape Navigator没有类似的方法(或者说在根本就没有“添加到收藏夹”)。所以,你的脚本只能提示Netscape用户使用Navigator菜单或者快捷键创建书签(参见下面的例子):
示例:在Internet Explorer中,脚本创建的链接会打开“添加到收藏夹”对话框。在Netscape中,脚本会提示用户点击“Bookmarks” | “Add bookmark”或者按Ctrl-D来创建一个书签。
示例的源代码是:
- if(navigator.appName=="Netscape"){
- document.write(
- 'Tobookmarkthissite,click'
- +'<b>Bookmarks|Addbookmark</b>'
- +'orpress<b>Ctrl+D</b>.'
- )
- }
- elseif(parseInt(navigator.appVersion)>3){
- document.write(''
- +'<aonMouseOver="self.status=\'Bookmarkthissite\'"'
- +'onMouseOut="self.status=\'\'"'
- +'href="javascript:window.external.AddFavorite'
- +'(\'http://www.JavaScripter.net/faq/\','
- +'\'JavaScripter.netFAQ\')">'
- +'Clickheretobookmarkthissite</a>.'
- )
- }