访问 iframe 中内容可编辑字段中的选定图像
我在获取 src 或 id 或 iframe 内可编辑 div 容器内的选定图像的任何内容时遇到问题。好吧,可以通过 getSelection() 调用来获取选定的文本信息,如下所示:
window.document.getElementById("monitor").contentWindow.document.getSelection();
// "monitor" = iframe id
但是如果我选择图像而不是文本,我只会得到一个空结果。我搜索了几个小时但没有找到任何解决方案。有人知道如何解决这个问题吗? (我使用的是火狐4)
I have a problem to get src or id or whatever of an selected image that is inside a contenteditable div-container within an iframe. Well, it is possible to get the selected text information with a getSelection()-call like this:
window.document.getElementById("monitor").contentWindow.document.getSelection();
// "monitor" = iframe id
But if I select an image instead of text, I just got an empty result. I searched hours and hours but didn't find any solution. Does someone knows a way how to solve this problem? (I'm using Firefox 4)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
window.getSelection()
(其中document.getSelection()
是 HTML5 兼容浏览器中的别名)返回Selection
对象,而不是字符串(它只是表面上看起来是一个字符串,因为它的toString()方法返回选定的文本)。最有用的方面是能够获取一个或多个 DOM Range 对象。
一旦你有了一个 Range,获取它包含的所有 DOM 节点就有点棘手了。您可以使用我的 Rangy 库,它添加了一个
getNodes()
方法其 Range 的实现:window.getSelection()
(for whichdocument.getSelection()
is an alias in HTML5-compliant browsers) returns aSelection
object, not a string (it only superficially appears to be a string because itstoString()
method returns the selected text). The most useful aspect for this is the ability to get one or more DOM Range objects representing the selection usinggetRangeAt()
.Once you have a Range, getting all the DOM nodes it contains is a little tricky. You could use my Rangy library, which adds a
getNodes()
method to its implementation of Range: