2010-02-27 83 views
8

Tengo una función javascript que utiliza window.location. Funciona bien en Firefox e Internet Explorer, pero no en Chrome. He probado esto tanto en Ubunutu Hardy como en Windows Vista. ¿Cuál es el problema subyacente y cómo puedo eludirlo?window.location no funciona en el navegador Chrome

+8

Sería de gran ayuda si nos mostró el javascript functuon que está utilizando ... :) – Rob

+4

-1 - pide ayuda con una función y espera que nosotros suponemos? ¿quiero ayuda? muestra el código +1 @Rob –

+3

Y no estaría de más si practicara correctamente la ortografía de la "función";) – Rob

Respuesta

38

El uso más común de window.location es hacer que el navegador cargue una nueva página. Un error común es asignar la URL al objeto window.location en lugar de su propiedad href. Entonces, la forma correcta de hacerlo es:

window.location.href = 'http://www.guffa.com'; 
+4

Gracias, Guffa. Estaba usando window.location = 'url'. Actualicé a window.location.href y todavía no me redirigen. En realidad, no recibo ninguna respuesta de la función en Chrome. He creado la siguiente función de prueba que funciona bien en IE y FF, pero no cromo: [code] función TestFunc() { \t código var = document.getElementById ("editar-informe-types").valor; \t alerta (código); \t window.location.href = 'google.com'; } [/ code] –

+0

@Someone: En lugar de ir a la página "google.com" en el sitio actual, ¿ha intentado acceder al sitio "google.com"? 'window.location.href = 'http: //google.com';' – Guffa

+1

Sí. Todavía no va allí. Tampoco alerta la variable de código en Chrome. Saqué un código en el comentario anterior, pero estaba declarando una variable en la función (var code = "test!") Y luego alertando a la variable. FF e IE muestran la alerta, aunque Chrome no lo hace. –

0

Acabo de crear el siguiente archivo html y me alertó de la ubicación de la ventana en Google Chrome 4.0. ¿Utiliza una versión anterior?

<!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> 
+1

window.location = 'http: //stackoverflow.com'; también funciona en Chrome 4.0 y redirige a este sitio. – amelvin

0

Resolvió el problema. No hubo ningún problema con la función ni con Chrome. La función debe invocarse mediante un elemento de formulario drupal. Estaba agregando el evento onclick que llamó a la función al formulario drupal en sí, en lugar de a un elemento de formulario en particular.

Prácticamente hacer esto:

$form['testform'] = array(
    '#type' => 'fieldset', 
    '#collapsible' => TRUE, 
    '#collapsed' => FALSE, 
     '#attributes' => array(
     'onchange' => 'testfunc()'), 
); 

lugar de esto:

$form['testform']['element1'] = array(
    '#type' => 'select', 
     '#options' => options, 
     '#required' => false, 
     '#attributes' => array(
     'onchange' => 'testfunc()'), 

); 

qué no me siento tonta.

+1

Por favor, acepte su respuesta a su propia pregunta para evitar que otros vengan e intenten responderla (Haga clic en la marca de la izquierda) – Basic

0

Tuve el mismo problema, y ​​no fui lo suficientemente cuidadoso para asegurarme de que la nueva url redireccionada contenía espacios en blanco (lástima de mí).

Por lo tanto, solo Chrome detiene esta nueva ubicación si la URL no está estandarizada.

Asegúrese de tener un UpdatePanel si está utilizando una Página maestra.

2

Estaba teniendo este problema, y ​​terminó siendo que mi función javascript devolvió verdadero después de la etiqueta window.location (debido a funciones anidadas). FF e IE nunca se procesaron tan lejos, mientras que Chrome lo hizo.

+0

No devolví nada explícito; devolvió false después de configurar window.location.href y funcionó. –

2

Probar sin window.. Por ejemplo, use location.assign() en lugar de window.location.assign().

14

Intenta anexar "return false;" a su llamada javascript así ...

window.location.href='google.com; 
return false; 
+1

Se ha confirmado que esto funciona para Chrome iOS. Si alguien tiene una explicación para esto, sería extremadamente apreciado – corvuszero

+1

Sin explicación, pero horrorizado de todos modos. ¡Me alegra que alguien lo haya mencionado! –

Cuestiones relacionadas