2014-01-09 85 views
0

我在项目中使用颜色框,并且IE中的此错误导致脚本的其余部分由于第11行上的.split的未捕获类型错误而煞车线索将是伟大的Uncaught TypeError:无法调用未定义的方法'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); 
}); 
} 
}; 
+0

这很奇怪。有一件事你应该做的不同,但是在你的变量声明之前加上'var'。他们现在这样做的方式是将它们全部设置为“全局变量” –

+0

接下来我会建议在IE浏览器JavaScript控制台中一次运行这些行。从'$('#content')。find('iframe')。attr('src');'开始给你。 (尽管你可能必须做'$ = jQuery'1st)。 –

+0

否则你可以改善这个问题,删除Drupal的东西。 Drupal(或服务器端的东西)不是你的X浏览器问题的原因。向我们展示输出到浏览器的JavaScript,并删除Drupal标记。 –

回答

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()似乎多余。这应该是相同的方式

+1

如果它返回多个,它仍然会工作,只要第一个具有src属性。 –

+0

我相信你(但我现在要测试)。只是猜测;-) –

+0

我猜的Uncaught TypeError:也可以产生,如果没有任何页面上的YT视频以及多个更有可能在这种情况下成为问题,该错误被压扁当地,但我会让你知道,当我尝试在客户端环境 –

相关问题