【问题标题】:onClick Window.Location does not work in Chromium (Linux version of Google Chrome)onClick Window.Location 在 Chromium(Linux 版 Google Chrome)中不起作用
【发布时间】:2014-12-12 23:26:12
【问题描述】:

我觉得我有点傻,但我似乎无法让我的 onClick 通过 Chromium 工作,它是 Chrome 的 Linux 版本(FireFox 很好,IE 也很好)

这是一些 HTML 代码:

<form>
<select name="month">
<option value="1" onclick="javascript:window.location.href='<SOMEPAGE>'; return false;">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
</form>

【问题讨论】:

    标签: javascript html linux google-chrome chromium


    【解决方案1】:

    我相信并非所有浏览器都支持在选项元素上使用 onClick。即使是这样,仍然可能有更好的方法来做到这一点。

    如何使用 select 的 onChange 事件,然后检查选择了哪个选项。然后很容易为其他选项添加案例,而不会让您的 html 变得混乱。

    例如

    <form>
    
    <script language="JavaScript">
    function doSomething() {
        selected=document.getElementById("month")[document.getElementById("month").selectedIndex].value;
        switch(selected) {
        case "1":
            window.location.href='http://www.ibm.com';
            break;
            }
        }
    </script>
    
    <select name="month" id="month" onChange="doSomething()">
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
    </select>
    </form>
    

    【讨论】:

      【解决方案2】:

      你试过 window.open() 方法吗?

      替换:

      <option value="1" onclick="javascript:window.location.href='<SOMEPAGE>'; return false;">January</option>
      

      通过

      <option value="1" onclick="window.open('<SOMEPAGE>')">January</option>
      

      【讨论】:

      • 是的。我再次尝试了“window.open()”,Firefox 喜欢它,但 Chrome/Chromium 没有做任何事情
      • 它是最新版本的 Chromium 吗? Chrome有同样的问题吗?您使用哪个 linux 发行版?是在移动设备上(Android、IOS)吗?
      • 浏览器类型:Chromium 37.0.2062.120 Linux 发行版:Ubuntu 14.04 不,这不是移动设备。据我所知,Chrome 似乎也有同样的问题。
      【解决方案3】:

      改为使用 onchange 事件,然后使用 JQuery 获取选定的值。 试试这个:

      <script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js"></script>
      
      <script>
      function openWindow(){
          if($("#mySelect option:selected").text() === 'January')
              window.open('<SOMEPAGE>');
      }
      </script>
      
      <form>
      <select id="mySelect" name="month" onchange="openWindow()">
      <option value="1">January</option>
      <option value="2">February</option>
      <option value="3">March</option>
      <option value="4">April</option>
      <option value="5">May</option>
      <option value="6">June</option>
      <option value="7">July</option>
      <option value="8">August</option>
      <option value="9">September</option>
      <option value="10">October</option>
      <option value="11">November</option>
      <option value="12">December</option>
      </select>
      </form>
      

      【讨论】:

      • 我已经更新了我的答案,它有效吗?当他阻止window.open时,Chrome会显示一条消息吗?
      • 不,不,绝对不是。这甚至破坏了页面的布局以及 Firefox 的工作版本,并且仍然没有修复 Chrome/Chromium 问题
      猜你喜欢
      • 1970-01-01
      • 2015-01-27
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多