为 Mailto 设置 HREF:
Setup HREF for Mailto:
错误消息:无法设置 属性 'innerHTML' 为 null。
我注意到问题是 href="mailto:<a id="Email">...
在 ""
中,但是如何在不将 mailto 移动到 javascript 的情况下更改电子邮件 ID?还是有可能。
我知道 Javascript 有 link 编码,但 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>
不能将元素放在属性值中。
将 ID 放在您已有的锚点开始标记上。
使用字符串替换来更改电子邮件地址。
<a id="Email" href='mailto:PLACEHOLDER?subject=Test&body=This%20is%20Test'>
document.getElementById("Email").href =
document.getElementById("Email").href.replace("PLACEHOLDER", emailaddress);
注意:<a>
中不能有 <button>
。由于您要链接到 URL,因此请使用 <a>
。如果您希望它看起来像一个按钮,请使用 CSS。
您必须在 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';
}
<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>
请注意我是如何从您的 <a>
标签中删除 <button>
标签的。那是因为不需要,你可以用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;
}
错误消息:无法设置 属性 'innerHTML' 为 null。
我注意到问题是 href="mailto:<a id="Email">...
在 ""
中,但是如何在不将 mailto 移动到 javascript 的情况下更改电子邮件 ID?还是有可能。
我知道 Javascript 有 link 编码,但 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>
不能将元素放在属性值中。
将 ID 放在您已有的锚点开始标记上。
使用字符串替换来更改电子邮件地址。
<a id="Email" href='mailto:PLACEHOLDER?subject=Test&body=This%20is%20Test'>
document.getElementById("Email").href =
document.getElementById("Email").href.replace("PLACEHOLDER", emailaddress);
注意:<a>
中不能有 <button>
。由于您要链接到 URL,因此请使用 <a>
。如果您希望它看起来像一个按钮,请使用 CSS。
您必须在 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';
}
<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>
请注意我是如何从您的 <a>
标签中删除 <button>
标签的。那是因为不需要,你可以用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;
}