如何使用DOM方法在JavaScript调用位置插入文本
我想使用javascript方法“saveMailAddress”隐藏我网站上的电子邮件地址,该方法以“name”、“domain”和“TLD”作为参数。之后,这个方法应该向DOM树添加一个节点“a” 但是我怎样才能找到添加对象的位置呢 在HTML中,它应该如下所示(由PHP脚本生成): 但是如何将新元素放置到调用函数的父元素中?可能如何使用DOM方法在JavaScript调用位置插入文本,javascript,dom,Javascript,Dom,我想使用javascript方法“saveMailAddress”隐藏我网站上的电子邮件地址,该方法以“name”、“domain”和“TLD”作为参数。之后,这个方法应该向DOM树添加一个节点“a” 但是我怎样才能找到添加对象的位置呢 在HTML中,它应该如下所示(由PHP脚本生成): 但是如何将新元素放置到调用函数的父元素中?可能 <p id='mailadress'> <script type="text/javascript"> docum
<p id='mailadress'>
<script type="text/javascript">
document.write(saveMailAdresses("name", "domain", "tld");
</script>
</p>
function saveMailAdresses(name, domain, tld) {
return "<a href=''>test</a>";
}
写(保存邮件地址(“名称”、“域”、“tld”);
函数saveMailAddresses(名称、域、tld){
返回“”;
}
插入的A标记是否在href中包含实际的电子邮件地址?如果是,则仍然可以通过任何现代浏览器的调试工具获取电子邮件地址,或者只需单击链接打开电子邮件客户端,并在“收件人”字段中显示地址
如果您仍然想这样做,您可以在页面的开头创建一个数组,该数组接受一个对象,该对象包含要添加的每个地址的元素和上面的三个变量,为每个地址的数组添加一个对象,然后在页面循环结束时通过数组调用每个对象上的函数(使用带有附加元素参数的方法签名)
如果你真的想保护你的电子邮件地址,你可以有一个表单,由用户填写并发回服务器,然后让服务器根据表单中的值(即哪个部门的下拉列表等)将电子邮件发送给正确的人。这样,客户端将永远看不到电子邮件地址。您可以使用HTML5
数据-
属性。为了简单起见,此示例使用jQuery,但如果需要,您可以在纯DOM中编写它:
<script>
$(function() {
$(".email").each(function (){
var $this = $(this),
address = $this.data("username") + "@" + $this.data("domain") + "." + $this.data("tld"),
$link = $("<a>").attr("href", "mailto:" + address).html("link text");
$this.append($link);
});
});
</script>
<p>
My e-mail address:
<span class="email" data-username="someone" data-domain="example" data-tld="com"></span>
<p>
$(函数(){
$(“.email”)。每个功能(){
变量$this=$(this),
address=$this.data(“用户名”)+“@”+$this.data(“域”)+“+$this.data(“tld”),
$link=$(“但是onload eventHandler只允许在和中使用(德语源代码:),而且w3验证程序也给出错误“没有属性”onload"例如,尝试“test”,然后你必须给
元素一个ID,你可以访问它。我将在上面更新代码。没有ID,也没有onload,这是不可能的吗?我永远不知道页面上有多少电子邮件地址,…嗯,至少可以通过调用javascript函数来显示ma来避免onloadil地址直接在p元素之后,可以用PHP生成随机ID,但我还是不满意,。。。
<p id='mailadress'>
<script type="text/javascript">
document.write(saveMailAdresses("name", "domain", "tld");
</script>
</p>
function saveMailAdresses(name, domain, tld) {
return "<a href=''>test</a>";
}
<script>
$(function() {
$(".email").each(function (){
var $this = $(this),
address = $this.data("username") + "@" + $this.data("domain") + "." + $this.data("tld"),
$link = $("<a>").attr("href", "mailto:" + address).html("link text");
$this.append($link);
});
});
</script>
<p>
My e-mail address:
<span class="email" data-username="someone" data-domain="example" data-tld="com"></span>
<p>