错误消息:无法将属性'innerHTML'设置为null。
我注意到href="mailto:<a id="Email">...
中的问题是""
,但如何在不将mailto移动到javascript的情况下更改电子邮件ID?或者是否可能。
我知道Javascript中有链接编码,但在HTML中是否相同? (例如:href='mailto:'<a id="Email">'...
function Email_Address() {
var emailaddress = document.getElementByID("EmailAddress").value;
document.getElementById("Email").innerHTML = emailaddress;
}
Email Address: <input type="text" id="EmailAddress" onkeyup="Email_Address()" onchange="Email_Address()">
<br>
<br>
<a href='mailto:<a id="Email">?subject=Test&body=This%20is%20Test'><button>Email</button></a>
答案 0 :(得分:1)
您不能将元素放在属性值中。
将ID放在您已经拥有的锚点开始标记上。
使用字符串替换来更改电子邮件地址。
<a id="Email" href='mailto:PLACEHOLDER?subject=Test&body=This%20is%20Test'>
document.getElementById("Email").href =
document.getElementById("Email").href.replace("PLACEHOLDER", emailaddress);
注意:<button>
内不能有<a>
。由于您要链接到网址,请使用<a>
。如果您希望它看起来像一个按钮,请使用CSS。
答案 1 :(得分:1)
您必须在javascript中设置整个href
标记。你不能用HTML做到这一点。请尝试以下方法:
Email Address: <input type="text" id="EmailAddress" onkeyup="Email_Address()" onchange="Email_Address()">
<br>
<br>
<a id="anchorMail"><button>Email</button></a>
在JS中:
function Email_Address() {
var emailaddress = document.getElementByID("EmailAddress").value;
document.getElementById("anchorMail").href = 'mailto:'+ emailaddress +'?subject=Test&body=This%20is%20Test';
}
答案 2 :(得分:0)
<a href='mailto:<a id="Email">?subject=Test&body=This%20is%20Test'><button>Email</button></a>
上面的代码行无效HTML ,因为您可以花时间阅读的anchor tag specification,也可以随意跳转到mailTo
部分。
因此,为了使您的代码有效:
<a href='mailto:someemailaddress@somewhere.org&subject=Test&body=This%20is%20Test' id="email">Email</a>
请注意我是如何从<button>
标记中删除<a>
标记的。这是因为没有必要,您可以使用CSS通过id #email
修改上面的锚标记,使其看起来像一个按钮。有很多非常有用的在线参考可以帮助您实现这一目标。
现在,在JavaScript中,您可以通过使用id
访问它来修改上面的锚元素,如下所示:
function Email_Address() {
// grabbing the value of an element with ID of `EmailAddress`
var emailAddress = document.getElementByID("EmailAddress").value;
// setting the value of `emailaddress` to the element with ID of `email`.
document.getElementById("email").innerHTML = emailAddress;
}