2012-01-31 45 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