由于我无法访问我的网站的 PHP,因此我在下面尝试执行的操作,我正在使用此代码来解决它。它将搜索包含下面列出的两个的任何链接。一个来自 youtube 的 /watch?在它和另一个来自 youtube 的 URL 中只有 /v。它还在搜索任何嵌入的元素。问题是当我运行脚本时,由于错误,它会破坏所有其他代码。
未捕获的类型错误:无法调用未定义的方法“替换”
这是一个痛苦的屁股!所以我把它交给 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'
}
});
});