我在下面试图做什么,因为我没有访问到我的网站的PHP,我使用此代码来解决它。它将搜索包含下面列出的两个链接的任何链接。一个来自youtube的/ watch?在其中,另一个来自youtube,只有/ v在url中。它也在搜索任何嵌入的元素。问题是,当我运行该脚本时,由于错误而打破了所有其他代码。无法调用方法替换未定义的脚本问题
Uncaught TypeError: Cannot call method 'replace' of undefined
这是一个痛苦的屁股!所以我把它交给了FF,说变量WT没有被明确定义。那么它可能不是因为我在if语句的范围之外使用它。我不知道如何确保链接是否存在运行代码。以及如果嵌入存在也运行代码。这些将发布在我的用户信息中,并希望它们自动更改为与我的fancybox一起工作。
它从我的网页复制标记具有快速链接CSS所以不介意车的样子。
$(function() {
//if link contains /watch?
var t = $('.entry-content div div a[href*="youtube.com/watch?"]').attr('href');
if(typeof t !== "undefined") {
//do nothing don't run the script below
} else {
var d = $('.entry-content div div a[href*="youtube.com/watch?"]');
var newsrc = t.replace('watch?','');
var asrc = newsrc.replace('=','/');
var g = asrc.replace('http://www.','http://img.');
var s = g.replace('v','vi');
d.attr('class','ez_video');
d.attr('href', asrc).html('<img src="'+ s +'/0.jpg"/>');
}
//if link contains /v
var wt = $('.entry-content div div a[href*="youtube.com/v"]').attr('href');
if(typeof wt !== "undefined") {
//do nothing don't run script below
} else {
var wd = $('.entry-content div div a[href*="youtube.com/v"]');
var o = wt.replace('http://www.','http://img.');
var v = o.replace('v','vi');
wd.attr('class','ez_video');
wd.attr('href', v).html('<img src="'+ v +'/0.jpg"/>');
}
//if embeded file
var src = $('.entry-content').find('embed').attr('src');
if (typeof src !== "undefined") {
//do nothing again unless true run script below
} else {
var qload = src.replace('http://youtube.com/v/','');
var y = src.replace('http://','http://img.');
var imgsrc = y.replace('v','vi');
$('embed').before('<a class="ez_video" id="'
+ qload +'" href="'+ src +'"><img src="'
+ imgsrc +'/0.jpg" tile="" alt=""/></a>');
$('embed').remove();
}
//Now make all work with the fancybox
$('.ez_video').fancybox({
'autoScale' : false,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'width' : 854,
'height' : 480,
'type' : 'swf',
'swf' : {
'wmode' : 'transparent',
'allowfullscreen' : 'true'
}
});
});
只有当您的变量__are__未定义时,您的代码才会运行。为什么? – Mathletics 2013-03-09 19:15:40
真的吗?我只知道typeof var!==“未定义”区域是否意味着它不是未定义的? – EasyBB 2013-03-09 19:27:50
'!=='表示“不等于”; '==='意思是“精确相等” – Mathletics 2013-03-09 21:30:23