Javascript在Safari中运行,但不适用于Chrome或Firefox

Tay*_*Bea 7 javascript firefox google-chrome javascript-events

我根本不是程序员,所以我很抱歉,但在搜索网络后我找不到答案.

我正在尝试从该网站进行库存搜索并将其放入Facebook标签页.我从网站上抓取代码并在TextEdit中删除了我不想要的页眉和页脚.我只是试图采取库存搜索部分.

当我在Safari中测试它似乎工作.库存搜索出现了,所有的按钮和过滤器都运行得很好,当我去另一个页面时,页眉和页脚仍然消失,只有库存搜索在那里 - 完美.

但是,在Chrome和Firefox中进行测试后,按钮和过滤器根本无法正常工作,您无法浏览第一页或应用过滤器.

所以我决定去网站(库存搜索的第一页,如上面的链接)并将源代码保存到我的桌面,看看我在Chrome或Firefox中打开它是否可行,但它没有,没有按钮或过滤器工作,卡在第一页.但它确实在Safari中有效.

这是什么意思?我现在应该放弃吗?我会包含代码但它是我见过的最长的代码.我通过TextEdit完成的所有代码测试.

编辑:
以下是Chrome中的错误:

未捕获的SyntaxError:意外的令牌<Chevy.html:4608 XMLHttpRequest无法加载http://www.erikschevrolet.com/searchVehicles.ajax.Access-Control-Allow-Origin不允许使用null.
未捕获错误:XmlRenderEngine =>未知错误bundle.js:1 XMLHttpRequest无法加载http://www.erikschevrolet.com/searchVehicles.ajax.Access-Control-Allow-Origin不允许使用null.
未捕获错误:XmlRenderEngine =>未知错误bundle.js:1 XMLHttpRequest无法加载http://www.erikschevrolet.com/searchVehicles.ajax.Access-Control-Allow-Origin不允许使用null.
未捕获错误:XmlRenderEngine =>未知错误bundle.js:1

mgo*_*gol 1

这些 Chrome 警告与此处无关。上面给出的错误是关于跨域问题的。由于从 Javascript 中访问远程资源可能会导致非常邪恶的事情,现代浏览器会阻止它们,除非明确允许。

例如,http://example.com中的大多数内容无法通过http://example.net域下的 javascript 访问。由于您下载了大多数文件并且尝试在本地运行它们,但其中仍有一些引用http://www.erikschevrolet.com域下的文件,因此这是不允许的。

AFAIK 没有一个非常简单的方法可以避免这个问题;最安全的解决方案是让您下载所有使用过的文件,并手动更改对http://www.erikschevrolet.com 的引用以及对本地路径的引用。或者,可以将 XMLHttpRequest 的 withCredentials 值设置为 true (但由于您不是程序员,所以您真的可以把它搞砸......),如下所示(示例来自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();
  }
}
Run Code Online (Sandbox Code Playgroud)

即使这样也可能无法获得预期的结果,因为其中许多文件可能是在服务器上动态生成的并且可能会发生变化。