2012-08-28 83 views
1

我有一個自定義的YouTube插件,它將圖片添加到我的tinyMCE編輯器中,並替換爲服務器端的嵌入代碼或其他代碼。TinyMCE setActive to false advImage插件

剩下的唯一事情是當我在編輯器中選擇圖像時,advImage圖標和插件圖標都被設置爲活動狀態。 我想將advimage設置爲無效。我想這樣的東西:

cm.setActive('image', false); 

感謝Thariama(請參閱下面的回答)我知道正確的名稱應該是'image'。這是從我的YouTube管理插件editor_plugin.js文件中調用的,在控制檯中,我可以看到在選擇執行代碼的圖像和image是正確的目標。

如何將圖片插件設置爲無效?

查看下面的評論Thariama的答案獲取更多信息。

回答

0

之後,我讓它有一段時間,因爲它不在我的優先列表之上。現在這是我名單上的最後一件事,並且由於更多地使用tinyMCE和它的代碼,我很快找到了一個解決方案。

我覺得我需要去root:editor_template.js。這是圖像被設置爲活動,所以我需要改變它。

我的youtube圖像(現在也是vimeo)有一個alt attribbute來告訴我它是一個youtube還是vimeo視頻。現在我需要禁用這些插件中的任何一個。

我已經把它放在行1117這個代碼(設置活動狀態爲所有的img標籤後

p = getParent('IMG'); 
if (c = cm.get('image')) 
    c.setActive(!co && !!p && n.className.indexOf('mceItem') == -1); 

而且我的代碼:

if(ed.selection.getNode()) 
      if(ed.selection.getNode().getAttribute('alt') === 'videoYoutube' || ed.selection.getNode().getAttribute('alt') === 'videoVimeo') // Get the current selection in the editor and compare 
      { 
       cm.setDisabled('image', true); // Change disable state 
       cm.setActive('image', false); // Change active state state 
      } 
      else 
      { 
       cm.setDisabled('image', false); 
      } 
      if(ed.selection.getNode().getAttribute('alt') === 'videoYoutube') 
      { 
       cm.setDisabled('addvimeo', true); 
      } 
      else if(ed.selection.getNode().getAttribute('alt') === 'videoVimeo') 
      { 
       cm.setDisabled('addyoutube', true); 
      } 
      else 
      { 
       cm.setDisabled('addvimeo', false); 
       cm.setDisabled('addyoutube', false); 
      } 
1

我將演示正確的方法來關閉的HTML按鈕一個按鈕/控制(代碼插件)

var cm = tinymce.get('my_editor_id').controlManager; 
cm.get('code').setActive(0); // get the control named 'code' 

要了解哪些控件可用您可以登錄這個到控制檯

console.log(cm.controls); 
+0

如果你告訴我該按鈕上tinymce演示頁面(http://www.tinymce.com/tryit/full.php)我可以命名你需要的相關控制名稱來取消激活它 – Thariama

+0

根據控件的相關控件名稱似乎是'圖像'。它只是TinyMCE默認附帶的普通標準(高級)圖像插件,當我第一次設置m時,它就起作用y插件來激活,然後根據你的代碼(cm.get(mypluginname)isActive(0))將它設置爲非激活它的工作。但不是當我用'圖像'代替代碼時。 –

+0

剛剛使用了setDisabeld而不是setActive,並且顯示了cm.get('image')是正確的。 Mayby它與我在我的youtube插件的editor_plugin.js中稱爲這個事實有關?當我調用console.log(mc.get('image'))時,active始終爲true,並告訴我單擊圖像時會觸發代碼。 –