【ZeroClipboard is not defined】的解决方法

项目中一直在使用UEditor,风平浪静。

近期该项目引入了Requirejs,结果发现在有富文本编辑器的页面都会在控制台报出如下异常:

Uncaught ReferenceError: ZeroClipboard is not defined                 ueditor.all.min.js:265

经查看代码后发现 ueditor.../third-party/zeroclipboard/ZeroClipboard.js中 输出方法的地方是酱紫的

  if (typeof define === "function" && define.amd) {
    define(function() {
      return ZeroClipboard;
    });
  } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
    module.exports = ZeroClipboard;
  } else {
    window.ZeroClipboard = ZeroClipboard;
  }

意思就是说

  • 如果当前页面的模块加载模式是AMD的 则定义模块
  • 如果是CommonJs的,则输出到模块 ZeroClipboard
  • 否则 把 ZeroClipboard 定义为全局变量

这样 解决方案就有两种。

①不适用模块加载模式来使用这个功能

这样方法需要修改一点源码,把上面这段代码替换成如下代码即可

  if (typeof define === "function" && define.amd) {
    define(function() {
      return ZeroClipboard;
    });
  } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
    module.exports = ZeroClipboard;
  }
  window.ZeroClipboard = ZeroClipboard;

②如果不修改源码,就得在模块加载时做处理了

首先是修改配置

require.config({
    baseUrl: ‘‘,
    paths: {
        ZeroClipboard: "./UEditor.../ZeroClipboard"//主要是加这句话
    }
});

然后是在调用这个模块并把模块定义到全局变量

require([‘ZeroClipboard‘], function (ZeroClipboard) {
    window[‘ZeroClipboard‘] = ZeroClipboard;
});

完工

时间: 2024-10-12 10:50:07

【ZeroClipboard is not defined】的解决方法的相关文章

variable '' of type '' referenced from scope '', but it is not defined 异常解决方法

最近在做一个功能,通过拼接lamdba表达试来实现的功能,但测试时总是出现一个错误,如下图所示,网上也找不到答案,差点都放弃了.. 如上图图所示,我是想通过一个lamdba表达式(上图的IdField属性)来拼接一个新的lamdba表达式(上图的GetById方法中的exp),当然上面只是演示效果,并不是我实际功能的代码. 总是出现异常,我还特意创建另一个lamdba变量exp2,表达式跟exp一样,然后用exp2就不出错,exp跟exp2我比对过,都是一模一样的,真是百思不得其姐. 当然后面我

Target runtime Apache Tomcat v6.0 is not defined.错误解决方法

Eclipse导入工程后工程上显示一个小红叉,但工程里没有文件错误,也没有语法错误,百思不得其解啊,后来在网上找了一些资料说是项目引用的类库路径有问题.[项目]->[右键]->[build path]->[configure build path]->[libraries],查看一下引用的类库路径.网上都说是因为这里引用错误引起的,但是我在项目导入的时候做的第一件事情就是修改这里的library,因此不是这个原因. 在problems中显示错误是:Target runtime Ap

定时器setTimeout/setInterval中变量报错:not defined 的解决方法

首先声明本人资质尚浅,如有错误,欢迎指正.共同提高. ----------------------------------------------------------------------------------- 首先声明:本文不重点讨论this作用域,而是讨论普通变量在定时器中容易报错的情况: setTimeout的基本用法不再重述, 详见:http://www.w3school.com.cn/htmldom/met_win_settimeout.asp bug: setTimeout

target runtime apache v7.0 not defined 的解决方法

在工作台目录下找到自己操作的项目的文件夹 /.settings/org.eclipse.wst.common.project.facet.core.xml 删掉 <runtime name="Apache Tomcat v7.0"/> 参考:https://jingyan.baidu.com/album/ce09321b479d102bfe858f66.html?picindex=1 原文地址:https://www.cnblogs.com/taizhang/p/87211

spring AOP使用中Error creating bean with name ‘…’defined in class path resource..问题及其解决方法

2018/3/24 异常小记 工作环境:myeclipse2015(jar与java compiler 版本一致).windows10 工作内容:spring 中AOP的使用测试 异常信息: Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'AuthBeforeAdvice' defined in class

错误/异常:org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#39;sessionFactory&#39; defined in ServletContext resource [/WEB-INF/classes/beans_common.xml]...的解决方法

1.异常/错误视图 错误/异常描述:sessionFactory 初始化失败. 说明:我用的是SSH框架.JDK-1.8:Tomcat-7.0 我用到的jar包: 2.解决方法 我 出现在这个问题的原因是:jar包的问题(应该是冲突),我删除了hibernate-core-4.1.12.Final.jar这个jar包,问题就解决了. 其他原因: 1.保证jar包没有问题的情况下,还出现这个问题,那么就是你的Spring配置文件配置错了,请仔细检查,改回来即可. 2.保证jar包没有问题,Spri

Spring学习总结(14)——Spring10种常见异常解决方法

在程序员生涯当中,提到最多的应该就是SSH三大框架了.作为第一大框架的Spring框架,我们经常使用. 然而在使用过程中,遇到过很多的常见异常,我在这里总结一下,大家共勉. 一.找不到配置文件的异常 [plain] view plaincopy org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [com/

QT4项目升级到QT5遇到的问题和解决方法

QT4升级到QT5改动: PC部分: [改QTDIR变量] 在工程根目录下找到.user文件, 如InnoTabPlugin.vcxproj.user 修改指向你的QT5根目录: <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|Win32'"> <QTDIR>C:\qt\Qt5.2.1\5.2.1\msvc2010</QTDIR> </PropertyGro

用bootstrap兼容ie各大浏览器的解决方法

以bootstrap为框架常常会出现不兼容ie各大浏览器的问题,用以下代码基本可以解决,一般在<head></head>加入以下代码后,网页可能还一些比较不美观,再写一点css hack就可以了,如果加入以下代码网页还是特别乱,请检查一下你的css和js的文件顺序,有加载顺序的... <!--[if lte IE 6]> <link rel="stylesheet" type="text/css" href="st