使用jQuery从if语句调用脚本和参数

时间:2013-10-31 11:37:18

标签: javascript jquery

我有一个我无法控制的脚本,并且在另一个域中。默认程序是将其包含在脚本标记中,并且运行正常。

我不想默认运行它,所以我有一个if语句,如果是,我想运行脚本。 所以默认选项是:

<script src="http://domain/site/script?Id=12345&delayMs=2000&stayMs=10000&chance=0.1" type="text/javascript" ></script> 

我教过我可以使用jQuery.getScript()来运行上面的url但这不起作用。我不知道所包含的实际脚本和函数的正确链接,因此我无法获取脚本和调用函数。

任何想法都会有所帮助。

此致 布赖恩

1 个答案:

答案 0 :(得分:0)

由于您遇到跨域问题,请尝试此操作($.getScript()只是一种简写,除了crossDomain: true)。

$.ajax({
    url: 'http://domain/site/script?Id=12345&delayMs=2000&
                                    stayMs=10000&chance=0.1',
    crossDomain: true,
    dataType: 'script',
    success: function () {
        // script is loaded
    },
    error: function () {
        // handle errors
    }
});

您可以尝试使用纯JS的另一种解决方案:

function loadScript(src, callback)
{
  var s,
      r,
      t;
  r = false;
  s = document.createElement('script');
  s.type = 'text/javascript';
  s.src = src;
  s.onload = s.onreadystatechange = function() {
    //console.log( this.readyState ); 
    //uncomment this line to see which ready states are called.
    if ( !r && (!this.readyState || this.readyState == 'complete') )
    {
      r = true;
      callback();
    }
  };
  t = document.getElementsByTagName('script')[0];
  t.parent.insertBefore(s, t);
}

用法:

var url = 'http://domain/site/script?Id=12345&delayMs=2000&
                                    stayMs=10000&chance=0.1';
loadScript(url, function(){
    console.log('script loaded');
});