javascript - 如何从angular2中输入的文本动态设置超链接并使其可通过url点击?

标签 javascript angular

在我的 Angular 组件中,

  <div contentEditable="true"  id="mytext" ></div>
  <button type="button" (click)="goSee()">SEE ME !</button>  

在类中,有 goSee() 方法,因为我想将选定的文本(后面的 url)更改为真正的可点击 href。

goSee()
     {
  var startIndex = window.getSelection().getRangeAt(0).startOffset;
  var endIndex = window.getSelection().getRangeAt(0).endOffset;
  var slicedText = document.getElementById("mytext").innerText.slice(startIndex, endIndex);
   document.getElementById("mytext").innerHTML.anchor(slicedText);

    }

输入“mytext”的 url 和 selectedText 有效,但是出现NO超链接和可点击链接....请给我建议并提前谢谢大家..

最佳答案

首先,您必须使用link 方法创建具有href 属性的 anchor 。其次,innerHTML 是一个属性,您必须设置它。假设 slicedText 是您要放入 href 属性的 url,您可以像这样实现您想要做的事情:

var existingLinkText = document.getElementById("mytext").innerHTML;
document.getElementById("mytext").innerHTML = existingLinkText.link(slicedText);

此外,如果您的模板是组件模板的一部分,我建议使用 ElementRef访问 DOM 而不是全局 document

关于javascript - 如何从angular2中输入的文本动态设置超链接并使其可通过url点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40768601/

相关文章:

npm - 如何从 3000 更改服务器端口?

javascript - 无法让 JavaScript 代码在 Firefox 上运行

javascript - 使用 AngularJS 将电子邮件表单发布到 PHP

javascript - QWebEngine & QWebChannel : transport object `qt.webChannelTransport` disappeared after page reload

angular - 如何在 Angular Component Router 中使用参数定义默认路由?

mysql - 如何将 Angular、Nodejs 和 Mysql Web 应用程序部署到 Heroku?

java - Npm 安装失败,错误为 “EINVAL: invalid argument, chown”

javascript - 根据类名修改 <span/> 文本 JAVASCRIPT - 无 jQUERY

javascript - jQuery 同位素插件附加过滤器

angular - 在表单组上设置验证器