2012-06-12 24 views
7

No soy un programador en absoluto, entonces lo siento por adelantado, pero después de buscar en la web no puedo encontrar una respuesta.Javascript trabajando en Safari pero no en Chrome o Firefox

Estoy tratando de realizar la búsqueda de inventario desde this website y ponerlo en una pestaña de Facebook. Agarré el código del sitio web y edité los encabezados y pies de página, que no quería, en TextEdit. Solo estoy tratando de tomar la porción de búsqueda de inventario.

Cuando lo probé en Safari, parecía funcionar. Apareció la búsqueda de inventario y todos los botones y filtros funcionaron perfectamente y cuando iba a una página diferente, los encabezados y pies de página todavía no estaban y solo estaba la búsqueda de inventario, perfecto.

Sin embargo, cuando se probaron en Chrome y Firefox, los botones y filtros no funcionaron en absoluto, y no se puede pasar de la primera página ni aplicar filtros.

Así que decidí ir al sitio (la primera página de la búsqueda de inventario como el enlace anterior) y guardar el código fuente en mi escritorio para ver si al abrir esto en Chrome o Firefox funcionaría, y no funcionó, ni botones ni filtros trabajados, atascados en la primera página. Pero funcionó en Safari.

¿Qué significa esto? ¿Debería darme por vencido ahora? Incluiría el código pero es el más largo que he visto en mi vida. Todas las pruebas del código que hice a través de TextEdit.

edición:
Aquí están los errores en Chrome:

SyntaxError no detectada: inesperado símbolo < Chevy.html: 4608 XMLHttpRequest no puede cargar http://www.erikschevrolet.com/searchVehicles.ajax. El nulo de origen no está permitido por Access-Control-Allow-Origin.
Error no detectado: XmlRenderEngine => Error desconocido bundle.js: 1 XMLHttpRequest no se puede cargar http://www.erikschevrolet.com/searchVehicles.ajax. El nulo de origen no está permitido por Access-Control-Allow-Origin.
Error no detectado: XmlRenderEngine => Error desconocido bundle.js: 1 XMLHttpRequest no se puede cargar http://www.erikschevrolet.com/searchVehicles.ajax. El nulo de origen no está permitido por Access-Control-Allow-Origin.
Error no detectado: XmlRenderEngine => Error desconocido bundle.js: 1

+4

¿Hay algún error en Chrome y ff? Si los hay, inclúyalos. Además, la página parece generarse en un servidor. Si es así, sería más fácil hacer todo el lado del servidor al no incluir los archivos de encabezado, etc. – tcooc

+2

No estoy seguro de su caso de uso exacto, pero tenga cuidado de que lo que está haciendo aquí sea legal. El código de ese sitio es propiedad de "Chrome Systems Corporation", y sería ilegal robar y reutilizar su código sin su permiso. De lo contrario, buena pregunta :) – jwegner

Respuesta

1

Estas advertencias de Chrome no son relevantes aquí. Los errores indicados anteriormente se refieren a problemas de origen cruzado. Debido a cosas realmente malvadas en las cuales el acceso a recursos remotos desde dentro de Javascript puede resultar, los navegadores modernos los bloquean a menos que se permita explícitamente.

Por ejemplo, la mayoría de los contenidos de http://example.com no pueden ser accedidos por javascript bajo el dominio http://example.net. Como ha descargado la mayoría de los archivos y está intentando ejecutarlos localmente, pero aún algunos de ellos hacen referencia a archivos bajo el dominio http://www.erikschevrolet.com, no está permitido.

AFAIK no hay una manera muy simple de evitar este problema; la solución más segura hará que descargue todos los archivos usados ​​y cambie manualmente las referencias al http://www.erikschevrolet.com con referencias a su ruta local. Alternativamente, se puede establecer el valor de withCredentials XMLHttpRequest para cierto (pero ya que no es un programador, que realmente puede estropearlo ...) así (ejemplo de http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/):

var request = new XMLHttpRequest(); 
var url = 'http://bar.other/resources/credentialed-content/'; 
function callOtherDomain(){ 
    if(request) 
    { 
    request.open('GET', url, true); 
    request.withCredentials = "true"; 
    request.onreadystatechange = handler; 
    request.send(); 
    } 
} 

E incluso este podría no obtener el resultado esperado ya que muchos de estos archivos probablemente se generen dinámicamente en el servidor y están sujetos a cambios.

+0

¡Gracias! ¡Examinaré las referencias yo mismo, o subcontrataré el proyecto a alguien que sepa lo que están haciendo! –

+1

Si está satisfecho con mi respuesta, ¿podría votarlo y aceptarlo? ;) – mgol

+0

Utilice JSONP para realizar solicitudes de dominios cruzados o simplemente hágalo en el servidor en lugar de hacerlo en JS – sciritai

0

Parece que tiene un problema al leer un archivo xml o de texto en javascript con un esquema de archivos de carga específico. ocurre en los navegadores que las solicitudes de obras http, aquí en este caso se puede probar algo así como trabajar en javascript,

if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

esto actuará en el cromo Safari Firefox, así probar esto.

Cuestiones relacionadas