未捕获的TypeError:无法调用未定义的方法'split'

时间:2014-01-09 15:21:36

标签: jquery drupal

我正在项目上使用彩色框,IE中的这个错误导致脚本的其余部分因为第11行的.split未被捕获的类型错误而制动,任何线索都会很棒

Drupal.behaviors.PROJECT = {

attach: function (context, settings) {
jQuery(document).ready(function($){

  $(".inlinepop").colorbox({inline:true, width:"50%", href:"#login-pop"});

  //Solve problem with Youtube videos overflow
  params = '?wmode=transparent&rel=0';
  url = $('#content').find('iframe').attr('src');
  url = url.split('?');
  url = url[0] + params;
  $('#content').find('iframe').attr('src', url);

  //Set max width of video according to div
  width_container = $('#content').find('.node-content').width();
  $('#content').find('iframe').attr('width', width_container);
 });
 }
};

1 个答案:

答案 0 :(得分:0)

我打赌你的问题是你在网页上有多个YouTube视频。

下面的find()方法(可能是第11行)将返回一组所有iframe,而不只是一个。

url = $('#content').find('iframe').attr('src');

您可能希望迭代所有这些:

$('#content iframe').each(function(){
  url = $(this).attr('src');
  url = url.split('?');
  url = url[0] + params;
})

修改

我在上面的示例中将$('#content').find('iframe')变为$('#content iframe')find()似乎是多余的。这应该采用相同的方式