2012-01-25 37 views
1

我創建了一個下拉列表,當點擊列表中的某個項目時,會自動使用onChange事件觸發。這適用於IE,FF,Chrome & Opera,但在Safari中不會觸發。onChange在Safari中的下拉列表中未觸發,在IE,FF,Chrome和Opera中工作

我在同一頁面上有多個下拉列表,因此下面的代碼是從一年開始的,因此2011年在id結尾。

下面的域名是一個例子,而不是我真正的域名。

的JavaScript

var issue; 
     function selectMagazine2011(id){ 
      issue = document.getElementById(id).value; 
      if (issue!=0){ 
       mywindow = window.open("http://www.domain.com.au/2011/magazine_"+issue+"/index.html","new","resizable=1,scrollbars=1"); 
       mywindow.focus(); 
      } 
     } 

HTML

<div class="year"> 
     <label>2011: 
     <select name="magazine2011" id="magazine2011" onchange="selectMagazine2011('magazine2011')"> 
      <option value="0" selected="selected">Select an Issue</option> 
      <option value="Issue_4_2011">Issue 4 2011</option> 
      <option value="Issue_3_2011">Issue 3 2011</option> 
      <option value="Issue_2_2011">Issue 2 2011</option> 
      <option value="Issue_1_2011">Issue 1 2011</option> 
     </select> 
     </label> 
    </div> 
+0

請設置一個http://jsfiddle.net – mowwwalker

回答

0

你的代碼工作正常,在我的Safari瀏覽器。我懷疑你的腳本在DOMReadywindow.onload處理程序中?在這種情況下,您需要將您的功能定義爲:

... 
window.selectMagazine2011 = function(id) { 
    ... 

使其在全球範圍內可用。

+0

我會在函數selectMagazine2011(id)之前添加它。 – Phantom

+0

該行應該替換函數定義行'function selectMagazine2011(id){'。 –

相關問題