相关疑难解决方法(0)

JQuery动态加载Javascript文件

我有一个非常大的javascript文件,我只想在用户点击某个按钮时加载.我使用jQuery作为我的框架.是否有内置方法或插件可以帮助我这样做?

更多细节:我有一个"添加注释"按钮,应该加载TinyMCE javascript文件(我把所有TinyMCE的东西都煮成了一个JS文件),然后调用tinyMCE.init(...).

我不想在初始页面加载时加载它,因为不是每个人都会点击"添加评论".

我明白我可以这样做:

$("#addComment").click(function(e) { document.write("<script...") });
Run Code Online (Sandbox Code Playgroud)

但是有更好/封装的方式吗?

javascript jquery tinymce lazy-loading jquery-plugins

131
推荐指数
2
解决办法
11万
查看次数

load tinymce on demand by using jquery

This is my script:

$.ajaxSetup({async: false});
$.getScript('http://www.mydomain.com/dev/js/tinymce/tiny_mce.js', function(){
    tinyMCE.init({
        document_base_url : "http://www.mydomain.com/dev/js/tinymce/",
        [...],
    });
});
$.ajaxSetup({async: true});
Run Code Online (Sandbox Code Playgroud)

它加载tiny_mce.js成功.但是当init在回调中使用时,在跟踪路径错误的路径后加载2:

http://www.mydomain.com/dev//langs/en.js
http://www.mydomain.com/dev//themes/advanced/editor_template.js
Run Code Online (Sandbox Code Playgroud)

即使我使用document_base_url,仍然会在路径上加载.

jquery tinymce

4
推荐指数
2
解决办法
4930
查看次数

jQuery 按需加载 TinyMCE 4

我尝试使用 jQuery 从 CDN 按需加载 TinyMCE 4,但没有成功。我希望避免在页面加载时加载 TinyMCE,因为它是一组(相对)庞大的脚本,相反,我计划在用户单击按钮时触发加载它。这是我所拥有的:

HTML:

...
<script src='//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js'></script>
...
Run Code Online (Sandbox Code Playgroud)

jQuery:

...
if (typeof TinyMCE == 'undefined') {
  $.getScript('//tinymce.cachefly.net/4/tinymce.min.js', function() {
    alert('Loaded!');

    tinymce.init({
      selector: 'textarea',
      plugins: [
        'autolink contextmenu image link table'
      ],
      menubar: false,
      statusbar: false,
      toolbar: false
    });
  });
}
...
Run Code Online (Sandbox Code Playgroud)

我可以看到 jQuery 确实获取了脚本,因为我可以在检查器中看到网络活动。回调方法被调用,我可以看到Loaded!对话框出现,但 TinyMCE 没有初始化。JavaScript 控制台不显示任何错误。

关于如何让 TinyMCE 初始化有什么想法吗?

感谢您的时间。

html javascript jquery tinymce cross-domain

3
推荐指数
1
解决办法
4592
查看次数