【备忘】一段用于在论坛上插入Flash内容的JavaScript代码
2011-01-01 13:42 Nana's Lich 阅读(387) 评论(0) 编辑 收藏 举报这是我去年年初给我的一个朋友写的,不过后来因为种种原因没有利用上。
时间相隔了近一年,也不记得会不会有什么细节问题了,先bia上再说。
str = str.replace(/\[flash([=\s][^\]]+)?\](.+?)\[\/flash\]/ig, function ($0, $1, $2) { var args = $1.split(/\s+/), u = args.shift() || $2, t = $2 || u; if (u.charAt(0) == '=') u = u.substr(1); if (u.substr(0, 7).toLowerCase() != 'http://') { u = 'http://' + u } if (self.checklink(u, 1) == 1 && self.videonum < 1) { var w = 425, h = 350, mach = /^(\S+\.swf)(\?\S*)?$/i.exec(u), qs = mach[2], prms = {}; if (qs) u = mach[1], prms.FlashVars = qs.substr(1); if (u.indexOf('pl.bilibili.us') != -1) { w = 540; h = 450; } self.videonum++; if (window.ActiveXObject) { prms.movie = u, u = ""; for (var n in prms) u += ('<param name="' + n + '" value="' + prms[n] + '" />'); return ('<object class="video" width="' + w + 'px" height="' + h + 'px" alt="' + t + '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">' + u + '</object>'); } else { prms.src = u, u = ""; for (var n in prms) u += (n + '="' + prms[n] + '" '); return ('<embed class="video" width="' + w + 'px" height="' + h + 'px" alt="' + t + '" type="application/x-shockwave-flash" ' + u + '/>'); } } else { return ("<a href='" + u + "' target='_blank'>" + t + "</a>"); } });