我想让用户单击一个链接,然后它在另一个元素( 而不是 输入)中选择HTML文本。
“选择”是指您将鼠标拖到文本上方来选择文本的方式。这一直是研究的负担,因为每个人都用其他术语谈论“选择”或“突出显示”。
这可能吗?到目前为止,我的代码:
HTML:
<a href="javascript:" onclick="SelectText('xhtml-code')">Select Code</a>
<code id="xhtml-code">Some Code here </code>
JS:
function SelectText(element) {
$("#" + element).select();
}
我是否明显遗漏了一些东西?
Javascript
function selectText(node) {
node = document.getElementById(node);
if (document.body.createTextRange) {
const range = document.body.createTextRange();
range.moveToElementText(node);
range.select();
} else if (window.getSelection) {
const selection = window.getSelection();
const range = document.createRange();
range.selectNodeContents(node);
selection.removeAllRanges();
selection.addRange(range);
} else {
console.warn("Could not select text in node: Unsupported browser.");
}
}
const clickable = document.querySelector('.click-me');
clickable.addEventListener('click', () => selectText('target'));
<div id="target"><p>Some text goes here!</p><p>Moar text!</p></div>
<p class="click-me">Click me!</p>
我已经在此线程中找到了解决方案。我能够修改给定的信息,并将其与jQuery混合使用,以创建一个功能强大的函数来选择任何元素中的文本,而与浏览器无关:
function SelectText(element) {
var text = document.getElementById(element);
if ($.browser.msie) {
var range = document.body.createTextRange();
range.moveToElementText(text);
range.select();
} else if ($.browser.mozilla || $.browser.opera) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(text);
selection.removeAllRanges();
selection.addRange(range);
} else if ($.browser.safari) {
var selection = window.getSelection();
selection.setBaseAndExtent(text, 0, text, 1);
}
}
问题内容: 对于充当按钮的anchors (例如,“堆栈溢出”页面顶部的“ 问题”,“ 标签”,“ 用户 ”等)或选项卡,是否存在CSS标准方法来禁用突出显示效果(如果用户不小心选择了文本)? 我意识到可以使用JavaScript来完成此操作,并且经过一番搜寻后得出了仅Mozilla -moz-user-select选项。 是否有使用CSS来实现此目标的符合标准的方法,如果没有,“最佳实践”方法是
问题内容: 有没有一种方法可以根据元素文本在CSS中选择元素? 即: 那可能行不通。 编辑:也只需要支持Chrome。 问题答案: 您不能直接使用CSS,而是可以基于内部内容通过JavaScript设置CSS属性,但最后仍然需要在CSS定义中进行操作。
问题内容: 我想将选定的文本包装在具有span的div容器中,可以吗? 用户将选择一个文本并单击一个按钮,单击按钮时,我想用span元素包装该选定的文本。我可以使用来获取所选文本,但如何知道其在DOM结构中的确切位置? 问题答案: 如果所选内容完全包含在单个文本节点中,则可以使用从所选内容中获得的范围的方法来执行此操作。但是,这非常脆弱:如果选择不能在逻辑上包围在单个元素中(通常,如果范围跨越节点
问题内容: 以下HTML的Selenium xpath选择器将是什么: 我需要让Selenium IDE根据元素文本在列表中找到第二个项目。我以为可以解决问题,但显然没有。 问题答案: 我想这就是你要找的 而且更好
对于以下 HTML,硒 xpath 选择器是什么: 我需要让Selenium IDE根据元素文本定位列表中的第二项。我认为可以做到,但显然不行。
我正在尝试使用xpath从页面中刮取数据并单击ot。例如,我想要的内容是以下格式 我使用了函数//span[contains(@class,'x-tree-node-text')。但它没有返回任何内容。 任何帮助?