2

我在网站上的许多区域都使用了 fancybox-2.0.1,并且一直这样做没有问题。我也一直在将tinymce的jquery实现与fancybox结合使用,没有问题。但是,由于我将 tinymce inti 脚本更改为如下所示,我开始遇到问题:

<script type="text/javascript" src="tinymceJQ/jscripts/tiny_mce/jquery.tinymce.js"></script>
<script type="text/javascript">
$(function() {

var $editor = $("#appContentTextArea");

// Initialize WYSIWYG
$editor.tinymce({
    script_url : 'tinymceJQ/jscripts/tiny_mce/tiny_mce.js',
    theme : "advanced",
    mode : modeAlter,
    /*editor_selector : "mceEditor",*/
    content_css : "css/webPage.css",
    paste_text_sticky: true,
    paste_text_sticky_default: true,
    relative_urls: false,
    remove_script_host : false,
    remember_last_path : false,
    imagemanager_rootpath: accountFolder,
    theme_advanced_buttons1 : "bold, italic, underline, strikethrough, separator, justifyleft, justifycenter, justifyright, justifyfull, separator, formatselect, forecolor, separator, hr, removeformat, separator, cut, copy, image, separator, aquaHeading, sponsorDiv",
    theme_advanced_buttons2: "code, separator, link, unlinkbullist,numlist,tablecontrols, fontselect",
    theme_advanced_buttons3: "",
    setup : function(ed) {
        ed.onInit.add(function() {
            // do something
        });
    },
    oninit : tinyMceReady
});
</script>

一旦我更改为这个 init Fancybox 将不再打开 URL。相反,它会启动正确大小的弹出窗口,但内容将是“无法加载请求的内容。请稍后再试。”

是否有人知道与新的 fancybox 和 tinymce 的冲突,或者可以在上面的代码中看到冲突?

提前感谢任何可以提供帮助的人。

4

1 回答 1

3

许多 JavaScript 库使用 $ 作为函数或变量名,就像 jQuery 一样。在 jQuery 的例子中,$ 只是 jQuery 的别名,所以所有功能都可以在不使用 $ 的情况下使用。如果我们需要在 jQuery 旁边使用另一个 JavaScript 库,我们可以通过调用 $.noConflict() 将 $ 的控制权返回给另一个库:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Code that uses other library's $ can follow here.
</script>

这种技术与 .ready() 方法对 jQuery 对象的别名能力结合起来特别有效,因为在传递给 .ready() 的回调中,如果我们愿意,我们可以使用 $ ,而不用担心以后会发生冲突:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
  });
  // Code that uses other library's $ can follow here.
</script>

如有必要,我们也可以通过将 true 作为参数传递给方法来释放 jQuery 名称。这很少需要,如果我们必须这样做(例如,如果我们需要在同一页面上使用多个版本的 jQuery 库),我们需要考虑到大多数插件依赖于 jQuery 变量的存在和在这种情况下可能无法正常运行。

参考网址

于 2012-07-23T05:27:52.527 回答