选择onchange不能在ipad safari中工作

时间:2014-03-07 10:00:41

标签: javascript ipad select safari onchange

我有一个跳转框,可以更改到第二个选择框。这适用于iPad Safari上的任何地方。任何人都可以帮我弄清楚我需要做些什么才能让它发挥作用?

我已经设置了一个jsfiddle:http://jsfiddle.net/lbriquet/5m7U3/1/

独立示例:http://fiddle.jshell.net/lbriquet/5m7U3/1/show/

onchange上的选择框使用:

<select name="jumpMenu" size="12" id="jumpMenu" onChange="MM_jumpMenu('window',this,document.getElementById('ORGID'),0)">

它调用的函数是:

function MM_jumpMenu(targ, selObj, selObj2, restore) { //v3.0   

var url = '';
var tmp = selObj.options[selObj.selectedIndex].text;

switch (tmp) {
    case 'Membership':
        url = targ + ".open('" + selObj.options[selObj.selectedIndex].value + selObj2.options[selObj2.selectedIndex].value + '#2' + "')";
        break;
    case 'Officers':
        url = targ + ".open('" + selObj.options[selObj.selectedIndex].value + selObj2.options[selObj2.selectedIndex].value + '#3' + "')";
        break;
    case 'Liaisons':
        url = targ + ".open('" + selObj.options[selObj.selectedIndex].value + selObj2.options[selObj2.selectedIndex].value + '#4' + "')";
        break;
    case 'Subcommittees and WG':
        url = targ + ".open('" + selObj.options[selObj.selectedIndex].value + selObj2.options[selObj2.selectedIndex].value + '#1' + "')";
        break;
    default:
        url = targ + ".open('" + selObj.options[selObj.selectedIndex].value + selObj2.options[selObj2.selectedIndex].value + "')";
        break;
};

eval(url);
if (restore) selObj.selectedIndex = 0;

}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 iOS7 safari确实阻止了选择框打开一个新窗口,认为它是一个弹出窗口。我在构建网址的js末尾添加了目标“_self”,现在可以正常工作。

url = targ+".open('"+selObj.options[selObj.selectedIndex].value + selObj2.options[selObj2.selectedIndex].value + "','_self')";