在Javascript中的触发事件上添加锚定标记
我一直在努力在html文档中的在Javascript中的触发事件上添加锚定标记,javascript,html,anchor,Javascript,Html,Anchor,我一直在努力在html文档中的鼠标上添加或单击事件 我的要求是在用户在html页面中单击时,在单击的部分添加锚定标记 document.documentElement.addEventListener('click', function(e){ var tgt = e.target; if (tgt && tgt.nodeName === 'SPAN') { alert(e.target.id); tgt.classList.add('strong');
鼠标上添加
或单击事件
我的要求是在用户在html页面中单击时,在单击的部分添加锚定标记
document.documentElement.addEventListener('click', function(e){
var tgt = e.target;
if (tgt && tgt.nodeName === 'SPAN') {
alert(e.target.id);
tgt.classList.add('strong');
var randomString = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
alert('#'+randomString);
var attrHref = '#'+randomString;
tgt.id.add(randomString);
tgt.href.add(attrHref);
var newNode = document.createElement('div');
//g.setAttribute('id', randomString);
//alert( e.currentTarget === this );
var a = document.createElement('a');
a.href = attrHref;
alert(a.href);
//a.setAttribute('href', '#'+randomString);
//g.appendChild(a);
alert("afterAppendChild");
tgt.href = attrHref;
tgt.insertAdjacentElement("afterbegin", a);
document.activeElement.insertAdjacentElement("afterbegin", a);
alert("after insertA");
alert('done');
}
});
在html中,我在DOM元素中没有可以获取的特定ID,因此我尝试在用户单击的位置添加
标记。我可以将文本加粗,但无法添加
请指导我如何实现这一点。与许多标记一样,属性有一个onclick
事件()
您希望将“onclick”事件添加到所有A中,然后从以下内容开始:
document.getElementsByTagName(“a”)
它将返回页面上的所有元素的数组。
然后添加侦听器:
addEventListener('click'..)
所以你会有这样的东西:
document.getElementsByTagName("a").addEventListener('click',(event) => {
// YOUR FUNCTION HERE
// if the user should not be moved to the href add:
// return false
// or use event.preventDefault()
})
与许多标记一样,该属性有一个onclick
事件()
您希望将“onclick”事件添加到所有A中,然后从以下内容开始:
document.getElementsByTagName(“a”)
它将返回页面上的所有元素的数组。
然后添加侦听器:
addEventListener('click'..)
所以你会有这样的东西:
document.getElementsByTagName("a").addEventListener('click',(event) => {
// YOUR FUNCTION HERE
// if the user should not be moved to the href add:
// return false
// or use event.preventDefault()
})
我找到了解决这个问题的办法。下面是源代码
<script type="text/javascript">
$(document).click(function(e){
var randStr = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
var attrHref = '#'+randStr;
var div = $('<div id='+randStr+' class="a-wrapper">')
.css({
"left": e.pageX + 'px',
"top": e.pageY + 'px'
})
.append($('<a id='+randStr+' href='+attrHref+'>Link'+randStr+' </a>'))
.appendTo(document.body);
var blob = new Blob([$("html").html()], {type: "text/html;charset=utf-8"});
saveAs(blob, 'page.html');
});
</script>
<style>
body {
position: relative;
}
.a-wrapper {
position: absolute;
transform: translate(-50%, -50%);
opacity: 1;
}
</style>
$(文档)。单击(函数(e){
var randStr=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15);
var attrref='#'+randStr;
var div=$('')
.css({
“左”:e.pageX+“px”,
“顶部”:e.pageY+“px”
})
.附加($('')
.附录(文件正文);
var blob=new blob([$(“html”).html(),{type:“text/html;charset=utf-8”});
saveAs(blob,'page.html');
});
身体{
位置:相对位置;
}
a-包装纸{
位置:绝对位置;
转换:翻译(-50%,-50%);
不透明度:1;
}
我找到了一个解决方案。下面是源代码
<script type="text/javascript">
$(document).click(function(e){
var randStr = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
var attrHref = '#'+randStr;
var div = $('<div id='+randStr+' class="a-wrapper">')
.css({
"left": e.pageX + 'px',
"top": e.pageY + 'px'
})
.append($('<a id='+randStr+' href='+attrHref+'>Link'+randStr+' </a>'))
.appendTo(document.body);
var blob = new Blob([$("html").html()], {type: "text/html;charset=utf-8"});
saveAs(blob, 'page.html');
});
</script>
<style>
body {
position: relative;
}
.a-wrapper {
position: absolute;
transform: translate(-50%, -50%);
opacity: 1;
}
</style>
$(文档)。单击(函数(e){
var randStr=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15);
var attrref='#'+randStr;
var div=$('')
.css({
“左”:e.pageX+“px”,
“顶部”:e.pageY+“px”
})
.附加($('')
.附录(文件正文);
var blob=new blob([$(“html”).html(),{type:“text/html;charset=utf-8”});
saveAs(blob,'page.html');
});
身体{
位置:相对位置;
}
a-包装纸{
位置:绝对位置;
转换:翻译(-50%,-50%);
不透明度:1;
}
我不想getElementByTagName
,因为需要添加a
标记。我需要在用户单击的位置添加锚定标记。此外,我甚至无法通过id
获取元素,因为有可能用户单击的位置不可用。我不想getElementByTagName
,因为需要添加a
标记。我需要在用户单击的位置添加锚定标记。此外,我甚至无法通过id
获取元素,因为有可能用户单击的位置不可用。