【问题标题】:using tinymce in chrome extension在 chrome 扩展中使用 tinymce
【发布时间】:2012-01-31 08:51:43
【问题描述】:

我想在 chrome 扩展中使用 TinyMCE。

在简单的例子中,当我点击 browseraction 时,将 TinyMCE 插入 textarea。

它不工作。

请帮帮我!

这是我的代码。 (我使用 jquery。当点击 browseraction 时,插入 textarea 并应用 TinyMCE) 只需插入 textarea.. 不应用 TinyMCE..

我的文件夹

  • background.html
  • content.js
  • ma​​nifest.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"
    }
}

【问题讨论】:

  • 我可以告诉你,你应该选择 $(body) 而不是 $("body")
  • 没问题。 ""$("body").append("");"" 运行良好。
  • 你有没有想过这个问题?我需要做同样的事情,但我遇到了完全相同的问题。

标签: javascript google-chrome-extension tinymce


【解决方案1】:

你做错了顺序。当您尝试调用 tinymce 初始化时,您需要在页面上有 textarea。试试这个

**EDIT:**

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

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

【讨论】:

  • sry,也写错了,用我更新的代码再试一次
  • 仍然不工作..我认为这个'background.html'代码无法加载所有TinyMCE的js文件,只加载'tinymce/jscripts/tiny_mce/tiny_mce.js'..如何加载所有TinyMCE js 文件在 chrome 扩展名中?我现在疯了。
【解决方案2】:

这看起来像是一个很老的问题,试图将 TinyMCE 注入现有页面。

要在当前的 chrome 中执行此操作,您需要:

a) 使用 content_scripts 清单指令,在页面中注入您想要访问的每个脚本。 (在本例中为 jquery、tinymce 和您自己的脚本)

b) 在您的 content.js 中,设置一个 chrome RPC 接收器,使用 chrome.extension.onRequest.AddListener(...) 从您的后台脚本接收消息操作

c) 在您的后台脚本中,使用 chrome.browserAction.onClicked.AddListener(..) 为您的浏览器按钮设置一个触发函数,该函数使用 chrome.tabs.sendRequest(. ..)

我有一个扩展程序,它通过上下文菜单执行此类操作。您应该能够将此推断为浏览器操作按钮..

https://github.com/jeske/BBCodePaste

【讨论】:

    猜你喜欢
    • 2014-08-05
    • 2018-04-15
    • 2018-09-11
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2016-05-15
    • 2020-04-26
    相关资源
    最近更新 更多