我有一个使用window.location的javascript函数。它适用于Firefox和Internet Explorer,但不适用于Chrome。我已经在Ubunutu Hardy和Windows Vista上测试了这个。什么是根本问题,我该如何规避呢?
答案 0 :(得分:42)
window.location
最常见的用途是让浏览器加载新页面。常见错误是将URL分配给window.location
对象而不是其属性href
。所以,正确的方法是:
window.location.href = 'http://www.guffa.com';
答案 1 :(得分:18)
尝试附加“return false;”你这样的javascript调用......
window.location.href='google.com;
return false;
答案 2 :(得分:2)
我遇到了这个问题,结果是我的javascript函数在window.location标记之后返回true(由于嵌套函数)。 FF和IE从未处理过那么多,而Chrome确实如此。
答案 3 :(得分:2)
尝试不使用window.
。例如,使用location.assign()
代替window.location.assign()
。
答案 4 :(得分:0)
刚创建了以下html文件,它在Google Chrome 4.0中为我提醒了window.location - 您使用的是旧版本吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
</head>
<body>
</body>
</html>
<script language="javascript" type="text/javascript">
alert(window.location);
</script>
答案 5 :(得分:0)
解决了这个问题。该功能或Chrome没有问题。该函数应该由drupal表单元素调用。我正在添加onclick事件,它将函数调用到drupal表单本身,而不是特定的表单元素。
几乎这样做:
$form['testform'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#attributes' => array(
'onchange' => 'testfunc()'),
);
而不是:
$form['testform']['element1'] = array(
'#type' => 'select',
'#options' => options,
'#required' => false,
'#attributes' => array(
'onchange' => 'testfunc()'),
);
我不觉得傻。
答案 6 :(得分:0)
我遇到了同样的问题,我并不小心确保新的重定向网址包含空格(对我来说很羞耻)。
因此,如果网址未标准化,则只有Chrome会停止此新位置。
如果您使用母版页,请确保您有一个UpdatePanel。