两个脚本(Fancybox 和 Olark)之间的 JavaScript 冲突

标签 javascript jquery jquery-plugins

这是演示: http://svgenov.com/test/

问题出在哪里?当您转到屏幕截图部分时,图片必须以灯箱样式打开(使用 jQuery Fancybox - http://fancyapps.com/fancybox/ ),但与 Olark 实时聊天集成代码的冲突阻止了这一点( http://www.olark.com/ )。没有它也能正常工作。

如果有人可以看一下并为我提供解决方案,我会很高兴。当单击 fancybox 集的图片部分时,我在控制台中看到了这些错误消息:

22:47:03.143 TypeError: url is undefined jquery.fancybox-media.js:78
22:47:03.573 TypeError: aBrowser is null browser.js:4042

这是 Olark 代码(缩小后,如果您需要更易读的格式,也许 http://jsbeautifier.org/ 可以提供帮助):

<!-- begin olark code -->
<script data-cfasync="false" type='text/javascript'>/*<![CDATA[*/window.olark||(function(c){var f=window,d=document,l=f.location.protocol=="https:"?"https:":"http:",z=c.name,r="load";var nt=function(){
f[z]=function(){
(a.s=a.s||[]).push(arguments)};var a=f[z]._={
},q=c.methods.length;while(q--){(function(n){f[z][n]=function(){
f[z]("call",n,arguments)}})(c.methods[q])}a.l=c.loader;a.i=nt;a.p={
0:+new Date};a.P=function(u){
a.p[u]=new Date-a.p[0]};function s(){
a.P(r);f[z](r)}f.addEventListener?f.addEventListener(r,s,false):f.attachEvent("on"+r,s);var ld=function(){function p(hd){
hd="head";return["<",hd,"></",hd,"><",i,' onl' + 'oad="var d=',g,";d.getElementsByTagName('head')[0].",j,"(d.",h,"('script')).",k,"='",l,"//",a.l,"'",'"',"></",i,">"].join("")}var i="body",m=d[i];if(!m){
return setTimeout(ld,100)}a.P(1);var j="appendChild",h="createElement",k="src",n=d[h]("div"),v=n[j](d[h](z)),b=d[h]("iframe"),g="document",e="domain",o;n.style.display="none";m.insertBefore(n,m.firstChild).id=z;b.frameBorder="0";b.id=z+"-loader";if(/MSIE[ ]+6/.test(navigator.userAgent)){
b.src="javascript:false"}b.allowTransparency="true";v[j](b);try{
b.contentWindow[g].open()}catch(w){
c[e]=d[e];o="javascript:var d="+g+".open();d.domain='"+d.domain+"';";b[k]=o+"void(0);"}try{
var t=b.contentWindow[g];t.write(p());t.close()}catch(x){
b[k]=o+'d.write("'+p().replace(/"/g,String.fromCharCode(92)+'"')+'");d.close();'}a.P(2)};ld()};nt()})({
loader: "static.olark.com/jsclient/loader0.js",name:"olark",methods:["configure","extend","declare","identify"]});
/* custom configuration goes here (www.olark.com/documentation) */
olark.identify('4787-893-10-7513');/*]]>*/</script><noscript><a href="https://www.olark.com/site/4787-893-10-7513/contact" title="Contact us" target="_blank">Questions? Feedback?</a> powered by <a href="http://www.olark.com?welcome" title="Olark live chat software">Olark live chat software</a></noscript>
<!-- end olark code -->

最佳答案

该问题仅由 FancyBox 的媒体助手引起,我找到了一种不使用它的方法。相反,我在 anchor 标记上使用了“fancybox.iframe”类,并更改了一些 YouTube 链接(例如 youtube.com/embed/XXXXX?autoplay=1)

感谢所有看过的人。

关于两个脚本(Fancybox 和 Olark)之间的 JavaScript 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20926585/

相关文章:

javascript - 如何使用 javascript 阻止来自特定站点的图像?

javascript - 如何使用字符串值正确查找(并最终更改)img src 属性?

jquery-ui - 动态填充 JQuery 数据表

javascript - 如何在 JavaScript 中将函数作为参数传递?

javascript - 外部 js 脚本在 View (ASP.NET) 中不起作用

javascript - jQuery().change 如何与 ajax 配合使用?

jQuery SlideDown 在 Firefox 中闪烁

jquery - 将标签内容替换为错误消息

javascript - 有思维导图插件吗?

layout - jQuery动态布局插件