到目前为止,我一直非常使用rteEditor。
问题在于这行代码:
document.getElementById(rteName).contentWindow.document.execCommand('insertHTML', false, html);
我将ABSOLUTE路径传递给html var,例如(“http://www.url.com/file.html”)。
但是当它执行这个insert命令时,输出是(“../ file.html”);
可以使用jQuery命令吗?
任何建议?
答案 0 :(得分:1)
您是否尝试使用'insertImage'代替'insertHTML'?
编辑: 'insertImage'只需要获取图像的url并根据它创建一个img标记 您可以使用jQuery(例如this:
)插入图像后获取图像 var img = $("img[src='imgUrl']");
将'imgUrl'作为您添加的图片的网址,然后将所需的属性添加到该网址。
不使用jQuery的示例是第123行的here。
答案 1 :(得分:1)
根据我的经验,使用原生富文本编辑器(也称为contentEditable="true"
的div和designMode
设置为on
的iframe)非常困难。 API在浏览器中不一致,并且它们的行为通常是意外的和错误的。因此,我倾向于尽可能少地使用document.execCommand()
。相反,我倾向于回复直接的DOM操作。
考虑到这一点,我将尝试解决您所描述的问题:
实现第二步所需的代码有点棘手,并且在不同浏览器之间存在很大差异。我会尝试在第二天或第二天发布一个工作示例。我希望这在同一时间有所帮助。
答案 2 :(得分:0)
据我所知,并且亲自体验过,这是浏览器的HTML编辑引擎固有的2.它只在您尝试插入的图像和运行HTML的地址时发生来自的编辑器位于同一个域。
作为解决方案,如果您的服务器/提供商允许此操作,您可以设置指向www
的第二个子域,例如
www2.example.com
并链接到图像
http://www2.example.com
这应该会导致绝对链接保持不变。
保存HTML后,您只需将所有www2.example.com
替换为www.example.com
。
另一种更简单的方法是在www2.example.com
上运行WYSIWYG编辑器并插入正确的绝对URL。
答案 3 :(得分:0)
我认为出于安全原因,您无法指定完整的网址,例如www.example.com。
答案 4 :(得分:0)
我相信你应该能够使用jQuery。
你可能想要使用
的内容$(rteName).find('body').html('<img src="http://www.example.com/" alt="...">
但可能对选择器进行了一些更改。