我有一个包含许多表和div的页面。其中一个带有一些文字。此页面后页面也有一个网址。
需要: - 如果用户从div id =“comment”中选择文本(div内的文本和另一个div内的文本进入此div),则在按下url后仅使用此文本获取警报(不带标签)。 - 如果用户选择的文本不是来自div(文本不在div中) - 什么都不做。
我已经尝试用CSS无法选择另一个DIV和表格(-moz-user-select:-moz-none; -khtml-user-select:none; -webkit-user-select:none; -o-user-select:none; user-select:none;“但这不是我正在搜索的内容......需要javascript。
<html>
<head><title>1</title></head>
<body>
<script type="text/javascript">
function getSelectedval(){
var txt = '';
if (window.getSelection) {
txt = window.getSelection();
} else if (document.getSelection) {
txt = document.getSelection();
} else if (document.selection) {
txt = document.selection.createRange().text;
}
alert(txt);
}
</script>
<div>hello my friend</div>
<br/>
<div id="comment">here is just a some text for testing <div id="text"><strong>this div inside div</strong></div> this selected value</div>
<a href="javascript:getSelectedval()">url</a>
</body>
</html>
由于
答案 0 :(得分:2)
function select() {
var flag = 0;
sel = window.getSelection();
for (var i = 0; i < sel.rangeCount; i++) {
var s = sel.getRangeAt(i).startContainer.parentNode.id;
var e = sel.getRangeAt(i).endContainer.parentNode.id;
if (s == "a") flag = 1;
if (flag = 1 && e == "a" || e == "child") flag = 2;
}
if (flag == 2) alert(sel);
}
document.getElementById("btn").addEventListener("click", function () {
select();
});