web-dev-qa-db-ja.com

どのようにしてtinyMCEドームを操作することができますか(公式のAPIは機能しないようです)。

Tinymceプラグインでこれは可能ですか?私はiframeにアクセスするための他の方法は機能していないか、お勧めできませんと思います。

私は これを見つけました そしてTinyMCE Advancedプラグインの中で印刷mceプラグインの中でそれを試みました しかしそれはうまくいきません

var $ = tinymce.dom.DomQuery;
$('p').attr('attr', 'value').addClass('class');

私はtinymceの高度なプラグインをインストールし、印刷プラグインにこの行を追加しようとしました。プラグインが実行され、印刷ダイアログが開きますが、それはdomには何もしません。 WPには完全版のtinymceがありますか?

/**
 * plugin.js
 *
 * Released under LGPL License.
 * Copyright (c) 1999-2015 Ephox Corp. All rights reserved
 *
 * License: http://www.tinymce.com/license
 * Contributing: http://www.tinymce.com/contributing
 */

/*global tinymce:true */


var mce_dom = tinymce.dom.DomQuery;
mce_dom('p').attr('id', 'arve').addClass('arve-html-class');
mce_dom('html').attr('id', 'arve').addClass('arve-html-class');

tinymce.PluginManager.add('print', function(editor) {

    var mce_dom = tinymce.dom.DomQuery;
    mce_dom('p').attr('id', 'arve').addClass('arve-html-class');
    mce_dom('html').attr('id', 'arve').addClass('arve-html-class');

    editor.addCommand('mcePrint', function() {
        editor.getWin().print();
    });

    editor.addButton('print', {
        title: 'Print',
        cmd: 'mcePrint'
    });

    editor.addShortcut('Meta+P', '', 'mcePrint');

    editor.addMenuItem('print', {
        text: 'Print',
        cmd: 'mcePrint',
        icon: 'print',
        shortcut: 'Meta+P',
        context: 'file'
    });
});
2
NextGenThemes

願っています

// Sets class attribute on all paragraphs in the active editor
tinymce.activeEditor.dom.setAttrib(tinymce.activeEditor.dom.select('p'), 'class', 'myclass');

// Sets class attribute on a specific element in the current page
tinymce.dom.setAttrib('mydiv', 'class', 'myclass');

または、このようにjqueryでIdを追加することができます。

$('div').find('p').attr('id', 'myid');

1
Abhishek Pandey

(質問に対するコメントの議論に基づいて答えてください)他のプラグインとグローバルな範囲で優位に立つために戦うことは無意味な戦いです。特にCSSに関しては、勝つことはできません。本体にid="me"が付いているからといって、プラグインが要素をより具体的に識別してあなたに勝つことを妨げることはありません。例えば、#me pは常に#myplugin .content pに負けます。

その答えは、固有のクラス名を使用し、スタイル規則でできるだけ具体的になることです。

別の方法は、ショートコード/設定を何でも変更しながら、カスタマイザに頼って(ほぼ)真のフロントエンドエクスペリエンスをユーザーに提供することです。明らかにこれは編集中にスタイルを適用するほど良くはありませんが、wordpressが真のフロントエンド編集経験を持っていない限り可能なことはそれだけです。

(「壊れた」例は、コメントの議論のために編集された)

そして最後に重要なことですが - html要素とbody要素のIDには1つの値しかあり得ず、2つのプラグインがある場合には1つのプラグインしか使用できないため、このアプローチは拡張できません。それをしているプラ​​グインは混乱になるでしょう。

0
Mark Kaplun