onclick ="location.href ='link.html'"不会在Safari中加载页面

Bra*_*dev 40 html javascript safari onclick

我无法onclick="location.href='link.html'"在Safari(5.0.4)中加载新页面.

我正在使用<select><option>HTML标签构建一个下拉导航菜单.我在点击菜单项后使用onClick处理程序加载新页面,但在Safari中没有任何反应.(我已经在FF和Opera中成功测试过了.)我知道Safari中有很多onClick错误,但我找不到解决这个特定问题的任何解决方案.

您可以在下面看到我的代码示例:

<select>
    <option onclick="location.href='unit_01.htm'">Unit 1</option>
</select>
Run Code Online (Sandbox Code Playgroud)

<select>
    <option onclick="location.href='#5.2'">Bookmark 2</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我不(并且不愿意)在我的HTML的head部分中嵌入任何javascript.我正在为不知道如何使用javascript的人开发页面 - 所以代码越简单越好.)


什么JavaScript代码会使菜单项在所有浏览器中都可点击?(请验证与IE的兼容性.)

Raf*_*sso 114

试试这个:

onclick="javascript:location.href='http://www.uol.com.br/'"
Run Code Online (Sandbox Code Playgroud)

在Firefox,Chrome和IE中为我工作得很好(哇!!)

  • 没有!这种方法缺乏jQuery违背了现代web开发的道德,除非你想取笑,否则不要使用这样的基本JavaScript! (12认同)
  • 使用jQuery是有趣的.如果你不能做自己的工作,你真的不能称自己为程序员吗?Rafael的解决方案是正确的,远比使用jQuery完成这么简单的任务更合适. (10认同)
  • [离题] @RonB。我相信KittenCodings被讽刺了 (2认同)

Mat*_*ott 35

使用jQuery ....我知道你说你正在尝试教某人javascript,但教他一种更清洁的技术...例如,我可以:

<select id="navigation">
    <option value="unit_01.htm">Unit 1</option>
    <option value="#5.2">Bookmark 2</option>
</select>
Run Code Online (Sandbox Code Playgroud)

使用一点jQuery,你可以做到:

$("#navigation").change(function()
{
    document.location.href = $(this).val();
});
Run Code Online (Sandbox Code Playgroud)

不引人注目,并且清晰地分离逻辑和UI.

  • 这有效.对于那里的所有JS新手,你需要用`$(document).ready(function(){}`包装上面的JS,如果你要将它插入你的html的头部.查看[本页] (http://stackoverflow.com/questions/5853787/script-does-not-work-when-on-head)了解更多详情. (3认同)

Ric*_*ges 5

试试看:

<option onclick="parent.location='#5.2'">Bookmark 2</option>
Run Code Online (Sandbox Code Playgroud)