HTML中的onclick事件<选择>无法运行Chrome和Safari
onclick event in HTML <select> not working Chrome and Safari
我有不同的JavaScript函数与每个选项标记关联,用于在OpenLayers映射中切换层的打开/关闭。它在Opera、Firefox和IE9中运行良好,但在Chrome和Safari中则不然。我读到我可以在select标记上使用onchange,但由于我是JavaScript的新手,我真的不知道它会如何调用四个不同的函数?
<select size="1" name="usgsfeed" id="usgsfeed">
<option value="usgs_hour" onclick="display_usgs_hour();">Past hour, all earthquakes</option>
<option value="usgs_day" onclick="display_usgs_day();" SELECTED>Past day, magnitude > 1</option>
<option value="usgs_week" onclick="display_usgs_week();">Past week, magnitude > 2.5</option>
<option value="usgs_month" onclick="display_usgs_month();">Past month, magnitude > 2.5</option>
<option value="none" onclick="display_none();">None</option>
</select>
根据select的值调用函数:
<select onchange="window['display_'+this.value]();">
如果值是"usgs_hour"
,则串联将是'display_' + 'usgs_hour' === 'display_usgs_hour'
,并且调用该函数。
jsfiddle演示:http://jsfiddle.net/Ag3kh/
对所选值使用开关结构
$('#usgsfeed').change(function () {
swith($(this).val()) {
case 'usgs_hour':
display_usgs_hour();
break;.....
}
})
您确实应该使用onchange!
要在javascript(而不是jquery)中做到这一点,这将起作用:
JavaScript:
<script type='text/javascript'>
function SelectChanged() {
if (document.aform.usgsfeed.value == "usgs_hour") {
alert("usgs_hour chosen");
else if( ...etc)
}
}
</script>
HTML:
<form name="aform">
<select size="1" name="usgsfeed" id="usgsfeed" onchange='SelectChanged();>
<option value="usgs_hour">Past hour, all earthquakes</option>
<option value="usgs_day" SELECTED>Past day, magnitude > 1</option>
<option value="usgs_week">Past week, magnitude > 2.5</option>
<option value="usgs_month">Past month, magnitude > 2.5</option>
<option value="none">None</option>
</select>
</form>
看看jsFiddle演示:jsFiddle.net/bWdaU/.
它使用onchange
来调用函数display_usgs_change
。
我添加了一个临时<div>
来显示选择正在工作。
HTML:
<select id="usgsfeed" name="usgsfeed" size="1" onchange="display_usgs_change();">
<option value="usgs_hour">Past hour, all earthquakes</option>
<option value="usgs_day" selected="selected">Past day, magnitude > 1</option>
<option value="usgs_week">Past week, magnitude > 2.5</option>
<option value="usgs_month">Past month, magnitude > 2.5</option>
<option value="none">None</option>
</select>
<div id="dummy">Remove this div!</div>
JS:
function display_usgs_change() {
document.getElementById('dummy').innerHTML = event.target.value;
}
相关文章:
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 为什么不是't运行此Javascript的Chrome
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- jQuery自动完成在Firefox中运行良好,但在Chrome中则不然
- 如何让JS脚本在导航后继续运行(谷歌chrome控制台)
- 多次运行相同的Javascript Chrome扩展
- Javascript赢得'不能在IE上编译,但可以在Chrome上运行
- 从已经运行的进程打开chrome扩展的背景页
- 以下颜色更改功能在IE9和Firefox中运行良好,但在早期的IE或Chrome中则不然
- Chrome没有加载最新版本的web工作程序脚本(运行缓存版本)
- Chrome扩展:是否有一种方法可以运行JavaScript来获取页面上的内部html,并将其保存到扩展中的变量中
- Javascript'元素'在ie中未定义,但在chrome和firefox中运行良好
- HTML中的onclick事件<选择>无法运行Chrome和Safari
- 关闭运行 chrome 扩展程序的弹出窗口
- 如何为每个标签单独运行 Chrome 扩展程序功能
- 在后台运行chrome扩展的HTML页面
- 我怎么知道运行Chrome的哪个脚本会打开一个新的弹出窗口
- 我可以从JS运行chrome包应用程序
- 有没有一种方法来运行Chrome扩展而不点击
- 在浏览器选项卡内运行Chrome打包应用程序