Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Tinymce拼写检查实现_Jquery_Asp Classic_Tinymce - Fatal编程技术网

Jquery Tinymce拼写检查实现

Jquery Tinymce拼写检查实现,jquery,asp-classic,tinymce,Jquery,Asp Classic,Tinymce,我有一个经典的ASP页面,它具有jquery特性,并且上面有TinyMCE编辑器。我希望能够对编辑器进行拼写检查,但我看到的每个示例都使用PHP或ASP.net 我看到了这一页:但我不熟悉SVN,所以我不确定如何遵循这些步骤,而且我已经读到它可能不适合IE 有没有其他选项来检查我的tinymce编辑器的拼写 非常感谢您的帮助。只需使用插件拼写检查器即可 首先,我不确定这是否可以借用SG 86的答案,所以如果不是 我使用了SG 86的例子,发现您无法直接使用TinyMCE提供的拼写检查功能,但是如

我有一个经典的ASP页面,它具有jquery特性,并且上面有TinyMCE编辑器。我希望能够对编辑器进行拼写检查,但我看到的每个示例都使用PHP或ASP.net

我看到了这一页:但我不熟悉SVN,所以我不确定如何遵循这些步骤,而且我已经读到它可能不适合IE

有没有其他选项来检查我的tinymce编辑器的拼写


非常感谢您的帮助。

只需使用插件拼写检查器即可


首先,我不确定这是否可以借用SG 86的答案,所以如果不是

我使用了SG 86的例子,发现您无法直接使用TinyMCE提供的拼写检查功能,但是如果您使用了论坛用户提供的hack,它确实可以成功地工作

  • 安装并设置TinyMCE
  • 遵循论坛用户的指示
  • TinyMCE提供的此解决方案的所有积分应归原论坛用户@


    我建议先将googiespell设置为使用asp的简单文本区: googiespell在这里:

    asp脚本是James Newton在此页面上的asp代理: 所以,一旦你开始工作,这里就是你如何将它与TinyMCE集成的 在javascript设置中,拼写检查器配置:

    <script language="javascript">
    
    tinyMCE.init({
        theme : "advanced",
        mode : "textareas",
        plugins : "spellchecker",
        theme_advanced_buttons3_add : "spellchecker",
        spellchecker_rpc_url : "/googiespell/spell.asp",
        spellchecker_languages : "+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv"
    });
    
    </script>
    
    指向应用程序上spell.asp文件的位置

    用以下代码替换spell.asp的内容:

    <%
    
    Dim ByteCount, BinRead
    ByteCount = Request.TotalBytes
    BinRead = Request.BinaryRead(ByteCount)
    rawData = RSBinaryToString(BinRead)
    
    'get language
    if instr(rawData, """params"":[""") > 1 then
        lang = mid(rawData, InStr(rawData,"[")+2, 2)
    else
        lang = "en"
    end if
    
    if instr(rawData, """method"":""checkWords"",") > 1 then
    'return mispelled words
     json = mid(rawData, InStrRev(rawData,"["))
     json = mid(json, 1, instr(json, "]"))
     json = replace(json, """,""", " ")
     json = replace(json, """", "")
     t = json
    
        r = "<?xml version=""1.0"" encoding=""utf-8"" ?><spellrequest textalreadyclipped=""0"" ignoredups=""0"" ignoredigits=""1"" ignoreallcaps=""1""><text>"_
            &t&"</text></spellrequest>"
    
        r = getURL("https://www.google.com/tbproxy/spell?lang="&lang, r, "","")
        out = "{""id"":null,""result"":["
        wrds = ""
        for each c in filter(split(r,"<c "),"</c>")
            'response.write "<br>"&server.htmlencode(c)
            o = cint(split(split(c,"o=",2)(1),"""")(1))+1
            l = cint(split(split(c,"l=",2)(1),"""")(1))
            s = cint(split(split(c,"s=",2)(1),"""")(1))
            out = out & """" & mid(t,o,l)& """, " 
            wrds = "1"
        next
        if wrds = "" then
            out = "{""id"":null,""result"":[],""error"":null}"
        else
            out = mid(out, 1, len(out)-2) & "],""error"":null}"
        end if
    
        response.write out
        response.end
    
    else
     'return single word corrections
     json = mid(rawData, InStrRev(rawData,"["))
     json = mid(json, 1, instr(json, "]"))
     json = replace(json, """,""", " ")
     json = replace(json, "en ", "")
     json = replace(json, """", "")
     t = json
    
        r = "<?xml version=""1.0"" encoding=""utf-8"" ?><spellrequest textalreadyclipped=""0"" ignoredups=""0"" ignoredigits=""1"" ignoreallcaps=""1""><text>"_
            &t&"</text></spellrequest>"
    
        r = getURL("https://www.google.com/tbproxy/spell?lang="&lang, r, "","")
    
        for each c in filter(split(r,"<c "),"</c>")
            'response.write "<br>"&server.htmlencode(c)
            o = cint(split(split(c,"o=",2)(1),"""")(1))+1
            l = cint(split(split(c,"l=",2)(1),"""")(1))
            s = cint(split(split(c,"s=",2)(1),"""")(1))
            c = textbetween(">", c, "<")
            '{"id":null,"result":["Titmice","Times","Tines","Tinnies","Timmy\'s"],"error":null}
            out =  "{""id"":null,""result"":["
            wrds = ""
            for each w in split(c,vbTab)
                out = out & """" & w & """, "
                wrds = "1"
            next
            if wrds = "" then
                out = "{""id"":null,""result"":[],""error"":null}"
            else
                out = mid(out, 1, len(out)-2) & "],""error"":null}"
            end if
        next
        response.write out
        response.end
    end if
    
     if t=empty then t = request.form()    'GoogieSpell is going to put the text in the POST data.
    
    'show the reply from google for the POST data.     
     response.write getURL("https://www.google.com/tbproxy/spell?lang="&lang, t, "","")
    
    
    
    Function TextBetween(sThis, sAnd, sThat)
        on error resume next
        TextBetween = split(split(sAnd,sThis,2,1)(1),sThat,2,1)(0)
    end function
    
    Function RSBinaryToString(xBinary)
      Dim Binary
      If vartype(xBinary)=8 Then Binary = MultiByteToBinary(xBinary) Else Binary = xBinary
      Dim RS, LBinary
      Const adLongVarChar = 201
      Set RS = CreateObject("ADODB.Recordset")
      LBinary = LenB(Binary)
    
      If LBinary>0 Then
        RS.Fields.Append "mBinary", adLongVarChar, LBinary
        RS.Open
        RS.AddNew
        RS("mBinary").AppendChunk Binary
        RS.Update
        RSBinaryToString = RS("mBinary")
      Else
        RSBinaryToString = ""
      End If
    End Function
    
    function getURL(aURL, anyPostData, anyUserName, anyPassword) 
    DIM objSrvHTTP,web,method,s
        on error resume next
        s=""
        set objSrvHTTP = Server.CreateObject ("Msxml2.ServerXMLHTTP.3.0")
        if anyPostData=empty then
            objSrvHTTP.open "GET",aURL, true, anyUsername, anyPassword
        else
            objSrvHTTP.open "POST",aURL, true, anyUsername, anyPassword
            objSrvHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        end if
        objSrvHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"
        objSrvHTTP.send anyPostData
        objSrvHTTP.waitForResponse 7
        select case objSrvHTTP.readyState
            case 0 'object created, but no URL opened
                debug "getURL("&aURL&", "&anyPostData&", "&anyUserName&", "&anyPassword&"): Object Created, no URL opened"
                err.raise 1, "Object Created, no URL opened"
                exit function
            case 1    'loading: URL opened, but no data sent
                debug "getURL("&aURL&", "&anyPostData&", "&anyUserName&", "&anyPassword&"):URL opened, no data sent"
                err.raise 2, "URL opened, no data sent"
                exit function
            case 2    'loaded: data sent, status and headers available, no response recieved.
                debug "getURL("&aURL&", "&anyPostData&", "&anyUserName&", "&anyPassword&"):No response from remote host"
                err.raise 3, "No response from remote host"
                exit function
            case 3    'interactive: some data recieved. responseBody and responseText will return partial results.
                debug "getURL("&aURL&", "&anyPostData&", "&anyUserName&", "&anyPassword&"):Partial response recieved:"
                debug server.htmlencode(objSrvHTTP.responseText)
                s = objSrvHTTP.responseText
                err.raise 4, "Partial response recieved"
            case 4    'complete: 
                s = objSrvHTTP.responseText
            end select
        getURL = s
    end function
    
    %>
    
    0那么
    RS.Fields.Append“mBinary”,adLongVarChar,LBinary
    美国公开赛
    艾德纽卢比
    RS(“mBinary”).AppendChunk二进制
    RS.更新
    RSBinaryToString=RS(“MB”)
    其他的
    RSBinaryToString=“”
    如果结束
    端函数
    函数getURL(aURL、anyPostData、anyUserName、anyPassword)
    DIM objSrvHTTP、web、方法、s
    出错时继续下一步
    s=“”
    设置objSrvHTTP=Server.CreateObject(“Msxml2.ServerXMLHTTP.3.0”)
    如果anyPostData=空,则
    objSrvHTTP.open“GET”、aURL、true、anyUsername、anyPassword
    其他的
    objSrvHTTP.open“POST”,aURL,true,anyUsername,anyPassword
    objSrvHTTP.setRequestHeader“内容类型”、“应用程序/x-www-form-urlencoded”
    如果结束
    objSrvHTTP.setRequestHeader“用户代理”、“Mozilla/4.0(兼容;MSIE 5.5;Windows NT 5.0)”
    objSrvHTTP.send anyPostData
    objSrvHTTP.waitForResponse 7
    选择case objSrvHTTP.readyState
    已创建案例0对象,但未打开URL
    调试“getURL(&aURL&“,&anyPostData&“,&anyUserName&“,&anyPassword&“):已创建对象,未打开URL”
    err.raise 1,“已创建对象,未打开URL”
    退出功能
    案例1'加载:URL已打开,但未发送数据
    调试“getURL(&aURL&“,&anyPostData&“,&anyUserName&“,&anyPassword&”):URL已打开,未发送数据
    错误2,“URL已打开,未发送数据”
    退出功能
    案例2'已加载:已发送数据,状态和标题可用,未收到响应。
    调试“getURL(&aURL&“,&anyPostData&“,&anyUserName&“,&anyPassword&“):远程主机无响应”
    错误3,“远程主机无响应”
    退出功能
    案例3‘交互:收到一些数据。responseBody和responseText将返回部分结果。
    调试“getURL(&aURL&“,&anyPostData&“,&anyUserName&“,&anyPassword&”):收到部分响应:
    调试服务器.htmlencode(objSrvHTTP.responseText)
    s=objSrvHTTP.responseText
    错误4,“收到部分响应”
    案例4'完成:
    s=objSrvHTTP.responseText
    结束选择
    getURL=s
    端函数
    %>
    
    编辑-为清晰起见,添加了我的标题:

    <script type="text/javascript" src="tinymce/jscripts/tiny_mce/tiny_mce.js" ></script>
    <script type="text/javascript">
    tinyMCE.init({
        mode : "textareas",
        theme : "advanced",
        plugins : "spellchecker",
        theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,undo,redo,|,copy,paste,|,spellchecker",
        theme_advanced_buttons2 : "",
        theme_advanced_buttons3 : "",
        spellchecker_rpc_url : "googiespell/spell.asp",  <--! Needs to point to where the spell.asp script is located on your server. -->
        spellchecker_languages : "+English=en,Spanish=es"
    });
    
    </script>
    
    
    tinyMCE.init({
    模式:“文本区域”,
    主题:“高级”,
    插件:“拼写检查器”,
    主题高级按钮1:“粗体、斜体、下划线、删除线、撤消、重做、复制、粘贴、拼写检查”,
    主题\高级\按钮2:“”,
    主题\高级\按钮3:“”,
    拼写检查器\u rpc\u url:“googiespell/spell.asp”,
    拼写检查语言:“+英语=英语,西班牙语=英语”
    });
    
    问题()中提到的JSpellChecker提供了一些TinyMCE拼写检查器的实现和使用示例,但它们都是基于java的实现(因此您需要执行一些额外的步骤使其在您的环境中工作)

    它应该可以与IE配合使用,但理想情况下,它应该与要使用它的页面位于同一主机上,因为浏览器(不仅仅是IE)可能会阻止跨域ajax请求

    如果不想处理SVN,可以在此处下载代码快照()。它还包含TinyMCE提供的用法示例

    spellchecker_rpc_url : "/myspellchcker",  
    <--! Needs to point to where the myspellchecker script is located on your server. -->
    

    谢谢你的回复。我注意到了这一点,但看到PHP被列为需求之一。我仍然可以使用经典ASP?@Cineno28-看起来TinyMCE不直接支持经典ASP进行拼写检查。它使用PHP模块进行拼写检查。但是,对于文本框集成来说,它确实可以很好地工作。这里有一个链接,指向他们的论坛帖子,其中有一些你可能会用到的黑客:@Cineno28-我继续尝试了该链接提供的示例,并且成功地使用了TinyMCE拼写检查器。@RogueSpear00我不确定在哪里响应,所以我假设它在这里,因为SG 86首先推荐了解决方案?我得到了与James Newton的ASP代理一起工作的好机会。然后,我尝试添加tinymce和海报提供的新ASP脚本,但出现了错误。我假设它与getURL(“,r,”,”)有关。既然这是在我的服务器上,我应该将它更改为getURL(“拼写.asp?lang=“&lang,r,”,”)或其他什么吗?我试过了,但它仍然不起作用。@RogueSpear00也一样,当它说“编辑拼写.asp使其看起来像这样”时“它是说用该代码替换整个文件,还是将其放在其中?再次感谢您的帮助。@RogueSpear00对不起,我以为您会看到下面的注释。我让它部分工作,
    spellchecker_rpc_url : "/myspellchcker",  
    <--! Needs to point to where the myspellchecker script is located on your server. -->
    
      #checker is a pyenchant object - uses enchant which wraps aspell in our case . The code was taken from django's implementation for tinymce spellchecker.
    
      def spell_check(self):
            """Returns a Response that implements the TinyMCE spellchecker protocol.
            """
            try:
                raw = self.REQUEST['BODY']
                input = json.loads(raw)
                id = input['id']
                method = input['method']
                params = input['params']
                lang = params[0]
                arg = params[1]
    
                if not enchant.dict_exists(str(lang)):
                    raise Exception("dictionary not found for language '%s'" % lang)
    
                checker = self.checker 
                if method == 'checkWords':
                    result = [word for word in arg if not checker.check(word)]
                elif method == 'getSuggestions':
                    result = checker.suggest(arg)
                elif method == 'learnWord' :
                    result = checker.add(arg)
                else:
                    raise Exception("Unkown spellcheck method: '%s'" % method)
                output = {
                    'id': id,
                    'result': result,
                    'error': None,
                }
            except Exception:
                return Exception("Error running spellchecker")
            self.REQUEST.RESPONSE.setHeader('Content-Type','application/json')
            return json.dumps(output)