1

TinyMCE(v3.5.8)と統合されたiBrowserプラグイン(v1.4.5)をCodeigniter 2.1.3で使用していますが、JavaScriptエラーが発生しますUncaught TypeError: Cannot set property 'isMSIE' of null 。これを解決するのを手伝ってください。ありがとう。

編集

エラーはiBrowserプラグインにあります。

ダウンロードしたファイルから何も変更していません。

iBrowserプラグインフォルダのeditor_plugin.jsでエラーが発生しました。

iBrowserプラグインのURL:http ://seoroot.com/blog/computing/programming/tinymce-ibrowser-plugin.html

editor_plugin.jsには以下のコードが含まれています。

ib = null;

(function() {
    tinymce.create('tinymce.plugins.IBrowserPlugin', {
        init : function(ed, url) {
            // load common script
            tinymce.ScriptLoader.load(url + '/interface/common.js');

            // Register commands
            ed.addCommand('mceIBrowser', function() {
                var e = ed.selection.getNode();

                // Internal image object like a flash placeholder
                if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1) {return}

                ib.isMSIE  = tinymce.isIE;
                ib.isGecko = tinymce.isGecko;
                ib.isWebKit= tinymce.isWebKit;
                ib.oEditor = ed; 
                ib.editor  = ed;
                ib.selectedElement = e;                 
                ib.baseURL = url + '/ibrowser.php'; 
                iBrowser_open();
            });

            // Register buttons
            ed.addButton('ibrowser', {
                title : 'iBrowser',
                cmd :   'mceIBrowser',
                image:  url + '/interface/images/tinyMCE/ibrowser.gif'
            });

            // Add a node change handler, selects the button in the UI when a image is selected
            ed.onNodeChange.add(function(ed, cm, n) {
                cm.setActive('ibrowser', n.nodeName == 'IMG');
            });
        },

        getInfo : function() {
            return {
                longname :  'iBrowser',
                author :    'net4visions.com',
                authorurl : 'http://net4visions.com',
                infourl :   'http://net4visions.com/ibrowser.html',
                version :   '1.4.0'
            };
        }
    });

    // Register plugin
    tinymce.PluginManager.add('ibrowser', tinymce.plugins.IBrowserPlugin);

})();

ごめん。その長いコード。

注:TinyMCEは正常に機能していますが、このプラグインにはいくつかのエラーがあります。

4

2 に答える 2

2

犯人はコードの最初の行です:

ib = null;

nullオブジェクトとしてアクセスすることはできません。TypeErrorあなたが見たようにそれは投げます。修正は、この行を次のように変更することだと思います。

ib = {};

そうすれば、それはオブジェクトであり、そのisMSIEプロパティを設定できます。

ただし、これが明示的にに設定されている理由には少し戸惑いnullます。ib最初にnullになる理由があった可能性があるため、コードのその行を変更して、それが何かを壊すかどうかを確認してみます。

于 2013-02-16T05:01:39.667 に答える
1

ファイルeditor_plugin.js(ibrowserルートプラグインフォルダーにあります)で、次の行をコメントアウトしました。

tinymce.ScriptLoader.load(url + '/interface/common.js');

これを追加します

$.getScript(url+'/interface/common.js');

editor_plugin_src.jsについても同じようにします。

修正する必要があります。@PhpMyCoderによる修正も機能します。:)

于 2013-07-25T06:54:58.187 に答える