2012-01-31 46 views
0

我想在chrome擴展中使用TinyMCE。在chrome擴展中使用tinymce

在簡單的例子中,當我點擊瀏覽時插入TinyMCE到textarea。

這不起作用。

請幫幫我!

這是我的代碼。 (使用jQuery。當點擊browseraction,插入文本域和應用TinyMCE的) 只需插入文本區域..不適TinyMCE的..

我的文件夾

  • background.html
  • content.js
  • 的manifest.json
  • 的icon.png
  • TinyMCE的(文件夾)
  • 的jquery-1.7.1.min.js

[background.html]

<script> 
chrome.browserAction.onClicked.addListener(function(tab) { 
     chrome.tabs.executeScript(null, { file: "jquery-1.7.1.min.js" }, function() { 
      chrome.tabs.executeScript(null, { file: "tinymce/jscripts/tiny_mce/tiny_mce.js" }, function() { 
       chrome.tabs.executeScript(null, { file: "content.js" }); 
       }); 
      }); 
     }); 
    }); 
</script> 

[content.js]

tinyMCE.init({ 
     mode : "textareas", 
     theme : "simple"   
    }); 

$("body").append("<textarea>hello</textarea>"); 

[的manifest.json]

{ 
    "name": "NNNyang", 
    "description": "TinyMCE test", 
    "version": "0.1", 
    "permissions": ["tabs", "http://*/", "https://*/"], 
    "background_page": "background.html", 
    "browser_action": { 
     "default_icon": "icon.png", 
     "default_title": "insert TinyMCE" 
    } 
} 
+0

我可以告訴你,你應該選擇$(身體),而不是$(「身體」) – f2lollpll 2012-01-31 08:57:51

+1

,這不是問題。 「」$(「body」)。append(「」);「」運行良好。 – NNNyang 2012-01-31 09:00:34

+0

你有沒有想過呢?我需要做同樣的事情,我也跑到完全相同的問題。 – doremi 2012-05-08 17:19:54

回答

0

你以錯誤的順序做它。當您嘗試調用tinymce初始化時,您需要在頁面上放置textarea。試試這個

**EDIT:** 

$("body").append("<textarea>hello</textarea>"); 

tinyMCE.init({ 
     mode : "textareas", 
     theme : "simple"   
}); 
+0

那也不行。 – NNNyang 2012-01-31 10:16:00

+0

sry,也把它寫錯了,再次使用我的更新代碼 – Thariama 2012-01-31 10:29:42

+0

仍然無法正常工作。我認爲這個'background.html'代碼無法加載所有TinyMCE的js文件,只加載'tinymce/jscripts/tiny_mce/tiny_mce。 js'..如何在Chrome擴展中加載所有TinyMCE的js文件?我現在正在瘋狂。 – NNNyang 2012-02-01 01:48:10

0

這看起來像一個相當古老的問題,試圖將TinyMCE注入到現有頁面。

爲了在目前的Chrome要做到這一點,你需要:

一)使用content_scripts清單指令,在頁面中,你要訪問的每個腳本注入到。 (在這種情況下,jquery,tinymce和您自己的腳本)

b)在您的content.js中,設置一個chrome RPC接收器,從您的後臺腳本接收消息動作,使用chrome.extension.onRequest.AddListener (...)

c)在您的後臺腳本中,使用chrome.browserAction.onClicked.AddListener(..)爲瀏覽器按鈕設置一個觸發器函數,該函數使用chrome.tabs.sendRequest向您的content.js腳本發送RPC消息(...)

我有一個擴展,它與上下文菜單做這種事情。您應該能夠推斷這一個瀏覽器的操作按鈕..

https://github.com/jeske/BBCodePaste