在Javascript中的触发事件上添加锚定标记

在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文档中的
鼠标上添加
单击事件

我的要求是在用户在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
获取元素,因为有可能用户单击的位置不可用。