Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/142.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
Javascript 转换API以仅转换文本部分(而不是HTML)_Javascript_Html_Ajax_Google Translate_Microsoft Translator - Fatal编程技术网

Javascript 转换API以仅转换文本部分(而不是HTML)

Javascript 转换API以仅转换文本部分(而不是HTML),javascript,html,ajax,google-translate,microsoft-translator,Javascript,Html,Ajax,Google Translate,Microsoft Translator,我在HTML文件中有一些文本内容,需要根据用户输入动态转换为不同的语言。我正在使用MicrosoftTranslatorAjax界面来做同样的事情 现在HTML文件类似于 <h1><u>CSS3 Media Query Support in IE7/8<o:p></o:p></u></h1> <p class=MsoNormal>Some other text content to be translated a

我在HTML文件中有一些文本内容,需要根据用户输入动态转换为不同的语言。我正在使用MicrosoftTranslatorAjax界面来做同样的事情

现在HTML文件类似于

<h1><u>CSS3 Media Query Support in IE7/8<o:p></o:p></u></h1>
<p class=MsoNormal>Some other text content to be translated as well ...Some other text content to be translated as well ...Some other text content to be translated as well </p>
相同的参考是

我的问题是,是否有任何方式我只能传递要翻译的文本(标记应该被忽略) 我知道可以使用innerText属性代替innerHTML。但缺点是我只得到原始文本输出作为响应,我需要为样式重新创建HTML


请提出建议。

您只需确保在Translate API调用中为使用innerHTML获取的文本包含
contentType=text/html
,就可以获得成功

否则,您需要遍历html,一次提取文本来翻译一个部分,可能需要调用break句子API来提取单个句子,进行翻译,然后替换为翻译。将段成批处理并调用TranslateArray将更有效。通过遍历html并仅传递带有内联标记的部分,可以混合这些方法


您可能会被迫遍历html以适应传递到API大小限制的文本。

好的,让我看看我是否理解这一点。您有一些文件保存在MS的goofy MSO HTML格式中。您想去掉所有结构,将其翻译、返回,然后将该结构重新应用于翻译?这就是你想要的吗?是的,这绝对是我想要的…尽管不管用什么方法…我都愿意。。。
s.src = "http://api.microsofttranslator.com/V2/Ajax.svc/Translate?oncomplete=mycallback&appId=8B841CA7C1A03443682C52AD07B7775A7BD5B3AA&from=" + languageFrom + "&to=" + languageTo + "&text=" + text;