加载这个js数组我做错了什么?

我已经添加了另一个问题,具体说明我认为这里的问题,但我认为更多细节会有所帮助。 所以,这是我的代码:

   Prueba jQuery no event    jQuery(document).ready(function() { jQuery("a").click(function(ev) { //ev.preventDefault(); // Defino las variables var currentAnchor = jQuery(this); var currentHref = currentAnchor.attr('href'); var curHref = currentHref.split('/'); var curHrefFinal = curHref[2].replace('www.', ''); if(jQuery.inArray(curHrefFinal,urlsFinal) > -1) { // Evito que se visite el link directo ev.preventDefault(); if (ev.metaKey || ev.ctrlKey) { // Redirecciono el navegador a la página que queremos window.open(currentHref + "?a=esta-funcionando-tambien"); } else { // Redirecciono el navegador a la página que queremos window.location = currentHref + "?a=esta-funcionando"; }; }; }); });    

Hola, este es un link.

Hola, este es otro link.

Hola, este es otro link.

Hola, este es otro link.

loadUrls.php文件正在输出:

 jQuery(document).ready(function() { var urlsFinal = [ "avantrip.com.ar", "avantrip.com", "espana.aula365.com", "almashopping.com", "airborn.com.ar", "1and1.mx", "oiasdoiajsdoiasdoiasjdioajsiodjaosdjiaoi.com" ]; }); 

基本上,我将所点击的所有链接的href属性与从SQL数据库动态生成的数组进行比较。 此数组需要托管在外部文件中,因此需要托管loadUrls.php文件。

由于某种原因,urlsFinal var未在主代码中被识别。 如果我复制数组并将其粘贴到主文件中,其余部分工作正常。 我找不到任何问题,但我相信你会的。

有什么想法吗?

谢谢!

您已经为变量创建了一个本地范围 – 您应该将它放入全局范围,方法是使loadUrls.php只是脚本(没有$(document).ready wrapper):

 var urlsFinal = [ "avantrip.com.ar", "avantrip.com", "espana.aula365.com", "almashopping.com", "airborn.com.ar", "1and1.mx", "oiasdoiajsdoiasdoiasjdioajsiodjaosdjiaoi.com" ]; 

将其添加到全局范围的另一种方法(如果您因某些其他原因需要$(document).ready闭包),则使用window.urlsFinal = [ ... ]

您需要在全局空间中定义urlsFinal 。 有两种方法可以做到这一点。

方法1:使用window变量:

 jQuery(document).ready(function() { var urlsFinal = [ "avantrip.com.ar", "avantrip.com", "espana.aula365.com", "almashopping.com", "airborn.com.ar", "1and1.mx", "oiasdoiajsdoiasdoiasjdioajsiodjaosdjiaoi.com" ]; window['urlsFinal'] = urlsFinal; }); 

方法2:在全局空间中声明变量,但在同一空间中初始化它。

 var urlsFinal; jQuery(document).ready(function() { urlsFinal = [ "avantrip.com.ar", "avantrip.com", "espana.aula365.com", "almashopping.com", "airborn.com.ar", "1and1.mx", "oiasdoiajsdoiasdoiasjdioajsiodjaosdjiaoi.com" ]; });