问题标签 [getselection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何支持跨浏览器的多个文本选择?
我正在构建一个基于 Web 的注释工具,最终用户可以在其中从 HTML 文档中选择和注释一段文本。从编程上讲,使用“window.getSelection”和“getRangeAt”可以直接访问和使用选定的文本和相应的范围。
但是,当我尝试将所有这些放在一个跨浏览器应用程序中时,我遇到了一个问题。在 Firefox 中一切正常,但在 Safari 中,我立即注意到,当我单击 HTML 按钮(即“注释”按钮)时,当前用户文本选择消失,好像单击按钮重新定位了文本插入符号。我尝试访问 window.getSelection 的代码从该按钮中的脚本执行,然后报告不存在任何选择。
我深入研究了谷歌文档,特别是他们的文字处理应用程序是如何处理这个问题的,因为本质上选择文本和单击“粗体”或“更改字体”的行为和机制对应于我的注释功能。在 Google Docs 中,他们将要编辑的文档文本加载到 iframe 中。通过玩这个,我了解到 Firefox 开箱即用支持在包含多个框架或 iframe 的网页中进行多个选择范围。换句话说,我可以在基本页面中选择一段文本,并在 iframe 中选择一段单独的文本,而第一个选择不会消失。这个 Google Docs 解决方案适用于 Firefox 和 Safari(我感兴趣的两种浏览器)。但是当我构建一个简单的示例页面来测试这个解决方案时,它在 Safari 中不起作用。
任何人都知道我在这里缺少什么才能使其正常工作吗?或者有另一种方法来让它工作的建议?
javascript - 从另一个框架中获取选定的文本
我有一个框架集,我希望有人能够单击一个框架中的一个按钮,该按钮对另一个框架中选择的文本执行某些操作。中的按钮frame[0]
调用以下 JavaScript 以从中获取所选文本frame[1]
:
我认为,问题在于单击按钮的行为会frame[0]
取消选择 中的文本frame[1]
,因此getSelection
返回一个空字符串。我能做些什么呢?
javascript - 在外部域上使用 Javascript 访问 iframe
我正在寻找一种方法来访问 IFRAME 上页面的只读属性。具体来说,我想阅读选择。显然我无法阅读它,因为该文档位于另一个域中。
有没有办法阅读它们?
javascript - 设置光标/插入符号位置的最佳方法是什么?
如果我将内容插入到 TinyMCE 选择的文本区域中,那么设置光标/插入符号位置的最佳方法是什么?
我tinyMCE.execCommand("mceInsertRawHTML", false, content);
用来插入内容,我想将光标位置设置到内容的末尾。
两者document.selection
都myField.selectionStart
不起作用,我觉得这将得到 TinyMCE 的支持(通过我在他们的论坛上找不到的东西),或者这将是一个非常丑陋的黑客。
后来:它变得更好;我刚刚发现,当您在 WordPress 中加载 TinyMCE 时,它会将整个编辑器加载到嵌入式 iframe 中。
稍后(2):我可以使用document.getElementById('content_ifr').contentDocument.getSelection();
将选择作为字符串获取,但不能用于我可以使用的选择对象getRangeAt(0)
。一点一点的进步。
html - xul-获取选择html
我有以下功能应该为网页上的用户选择区域获取 HTML。此功能似乎无法正常工作。
有时,它也会获得未选择的 html。
任何人都可以看看这个功能吗? - 非常感谢。
//----------------------------获取选定的HTML----------------- --------
函数 getSelectionHTML(){
}
javascript - getSelection() 和 insertNode -- Javascript 文本选择
有谁知道如何将浏览器选择设置为新/独立创建的范围?我了解如何从浏览器获取文本选择,也了解如何创建范围,但我不知道如何告诉浏览器将选择更改为我创建的范围。我原以为它会类似于“setSelection”。
需要明确的是,我并不是要选择 textarea - 我说的是 p / div / ul 标签等。
我引用了以下网站(也许它会给你一个想法?):
http://www.quirksmode.org/dom/range_intro.html
在此先感谢您的时间。
iphone - iPhone 小书签的 getSelection()
我做了一些研究,但似乎无法找到关于通过 iPhone 小书签中的 getSelection() 获取当前选定文本的明确答案。这还有可能吗?似乎从各种搜索中可以找到许多使用类似行为的书签,但似乎没有一个对我有用。
我只是在我的 iPhone 上选择一些文本,等待可拖动框出现(以及复制按钮),然后点击 MobileSafari 中的书签图标并选择我选择的小书签。
要获取当前选定的文本,我正在执行以下操作:
encodeURIComponent(
window.getSelection ? window.getSelection()+'' :
(document.getSelection) ? document.getSelection()+'' :
(document.selection ? document.selection.createRange().text+'' : 0)
)
有人对这个有经验么?
javascript - 在javascript中找到两个DOM节点的第一个公共父节点的最佳方法是什么?
我的问题正是如此,但在上下文中我想检查选择对象,比较 anchorNode 和 focusNode,如果它们不同,则找到第一个公共父元素。
jquery - 双击或手动选择的getSelection()不一样
我允许我问一个问题,因为我对返回选择的父项的函数有一点问题。
例如这句话:“猫是<strong>
灰色</strong>
的”。
如果我手动选择“灰色”一词并单击我的按钮,该函数将返回我[object HTMLSpanElement]。
但是,如果我通过双击选择相同的单词,该函数将返回我[object HTMLParagraphElement]。
你知道为什么吗 ?
非常感谢。
javascript - 跨多个标签的 getSelection 和环绕内容
我有一个脚本可以更改已选择文本的背景颜色。但是,当跨多个元素/标签选择文本时,我遇到了问题。
我得到的代码是:
输出的错误是:
我相信这与 getRange() 函数有关,尽管我不太确定如何进行,因为我是 javascript 的初学者。
有没有其他方法可以复制我想要实现的目标?
非常感谢。