五、对话框
1. 警告(Alert)
Q:我如何从JavaScript产生警告信息?
A:要产生警告信息,可以使用alert()方法:
alert('Message goes here');
上面的按钮由下面的代码创建:
<form name=myform> <input type=button value="Try it now" onClick="alert('Hello from JavaScript!')"> </form>
2. 确认对话框(Confirm Dialog)
Q:我如何通过JavaScript生成一个“确认/退出”对话框?
A:要生成“确认/退出”对话框,可以使用confirm()方法:
if (confirm("Your question)) { // do things if OK }
上面的按钮由一下代码创建:
<form name=myform> <input type=button value="Try it now" onClick="if(confirm('Format the hard disk?')) alert('You are very brave!'); else alert('A wise decision!')"> </form>
3. 提示输入对话框(Prompt)
Q:我如何通过JavaScript生成一个提示用户输入对话框?
A:可以使用prompt()方法生成提示用户输入的对话框:
prompt('Prompt text','Suggested input')
上面的按钮由下面的代码创建:
<form name=myform> <input type=button value="Try it now" onClick="f=prompt('Enter your name','Name'); alert('Hello '+f+'!')"> </form>
4. 退出的提示输入对话框(Canceled prompt)
Q:如何用户点击了退出按钮,那么prompt()将会返回什么值呢?
A:被退出的prompt()的返回值和浏览器有关。一些浏览器返回是null,而另外一些返回是空字符串''。因此,在调用prompt()时可以使用下面的代码:
userInput = prompt('Prompt text','Suggested input'); if (userInput != '' && userInput != null) { // do something with the input }
5. 查找对话框(Find Dialog)
Q:在JavaScript中如何调用浏览器的查找对话框?
A:在Netscape Navigator 4.0或者更新的浏览中可以使用window.find()调用其查找对话框。点击试试:
这里例子的代码是:
<form> <input type=button value="Find (Netscape only)" onClick="if (navigator.appName=='Netscape' && parseInt(navigator.appVersion)>3) window.find(); else alert('Your browser does not support /'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 ( 'To bookmark this site, click ' +'<b>Bookmarks | Add bookmark</b> ' +'or press <b>Ctrl+D</b>.' ) } else if (parseInt(navigator.appVersion)>3) { document.write ('' +'<a onMouseOver="self.status=/'Bookmark this site/'" ' +' onMouseOut="self.status=/'/'" ' +' href="javascript:window.external.AddFavorite' +'(/'http://www.JavaScripter.net/faq//',' +'/'JavaScripter.net FAQ/')">' +'Click here to bookmark this site</a>.' ) }