Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在html中添加属性时出错。我怎样才能修好它?_Javascript_Html_Href - Fatal编程技术网

Javascript 在html中添加属性时出错。我怎样才能修好它?

Javascript 在html中添加属性时出错。我怎样才能修好它?,javascript,html,href,Javascript,Html,Href,我正在尝试使用skype与Html和javascript进行聊天。 这里的问题是,我无法将属性href添加到我的id中 这是我的代码: 函数el(元素ID、用户名、操作){ document.getElementById(elementId).setAttribute(“href”,“skype:+username+”?“+action”); } 函数buildLinkRefs(){ var username=document.getElementById(“用户名”).value; el(“

我正在尝试使用skype与Html和javascript进行聊天。 这里的问题是,我无法将属性href添加到我的id中

这是我的代码:

函数el(元素ID、用户名、操作){
document.getElementById(elementId).setAttribute(“href”,“skype:+username+”?“+action”);
}
函数buildLinkRefs(){
var username=document.getElementById(“用户名”).value;
el(“呼叫btn”,用户名,“呼叫”);
el(“添加到联系人btn”,用户名,“添加”);
el(“查看配置文件btn”,用户名,“用户信息”);
el(“语音电子邮件btn”,用户名,“语音邮件”);
el(“聊天btn”,用户名,“聊天”);
el(“发送文件btn”,用户名,“发送文件”);
}
document.getElementById(“用户名”).addEventListener(“更改”,函数(){
buildLinkRefs();
},假);
buildLinkRefs()


呼叫
添加到联系人
查看用户配置文件
语音电子邮件
开始聊天

发送文件
您使用了错误的事件侦听器。文本输入应使用“键控”,而不是“更改”

因此,使用您的代码,它应该如下所示:

函数el(元素ID、用户名、操作){
document.getElementById(elementId).setAttribute(“href”,“skype:+username+”?“+action”);
}
函数buildLinkRefs(){
var username=document.getElementById(“用户名”).value;
el(“呼叫btn”,用户名,“呼叫”);
el(“添加到联系人btn”,用户名,“添加”);
el(“查看配置文件btn”,用户名,“用户信息”);
el(“语音电子邮件btn”,用户名,“语音邮件”);
el(“聊天btn”,用户名,“聊天”);
el(“发送文件btn”,用户名,“发送文件”);
}
document.getElementById(“用户名”).addEventListener(“键控”,buildLinkRefs);
buildLinkRefs()


呼叫
添加到联系人
查看用户配置文件
语音电子邮件
开始聊天

Send File
问题是,在加载整个页面之前,您的函数已启动,因此它看不到元素
username
,因为该元素不可用。因此有很多方法可以解决此问题。只需将代码放在html元素后面或下面,如下图所示:

<html>
 <head>
    <title>the title</title>
 </head>
     <body>
       <input type="text" id="username" value="echo123"/><br>
   <br>
    <a id="call-btn">Call</a> <br>
    <a id="add-to-contacts-btn">Add to contacts</a> <br>
    <a id="view-profile-btn">View User Profile</a> <br>
    <a id="voice-email-btn">Voice Email</a> <br>
    <a id="chat-btn">Start Chat</a> <br>
    <a id="sendfile-btn">Send File</a> <br>

    <!-- ### PLACE HERE YOUR CODE AFTER YOUR HTML CONTENT     -->
    <script type="text/javascript" language="javascript">
         function el(elementId, username, action) {
             document.getElementById(elementId).setAttribute("href", "skype:" + 
              username + "?" + action);
         }

    function buildLinkRefs() {
        var username = document.getElementById("username").value;

        el("call-btn", username, "call");
        el("add-to-contacts-btn", username, "add");
        el("view-profile-btn", username, "userinfo");
        el("voice-email-btn", username, "voicemail");
        el("chat-btn", username, "chat");
        el("sendfile-btn", username, "sendfile");
      }

     document.getElementById("username").addEventListener("change", function () {
         buildLinkRefs();
     }, false);

    buildLinkRefs(); 
</script>

标题


呼叫
添加到联系人
查看用户配置文件
语音电子邮件
开始聊天
发送文件
函数el(元素ID、用户名、操作){ document.getElementById(elementId).setAttribute(“href”,“skype:”+ 用户名+“?”+操作); } 函数buildLinkRefs(){ var username=document.getElementById(“用户名”).value; el(“呼叫btn”,用户名,“呼叫”); el(“添加到联系人btn”,用户名,“添加”); el(“查看配置文件btn”,用户名,“用户信息”); el(“语音电子邮件btn”,用户名,“语音邮件”); el(“聊天btn”,用户名,“聊天”); el(“发送文件btn”,用户名,“发送文件”); } document.getElementById(“用户名”).addEventListener(“更改”,函数(){ buildLinkRefs(); },假); buildLinkRefs();


您遇到了什么错误?您不需要在
标记上为href设置属性,只需调用
document.getElementById(elementId).href=…
您的示例在加载时工作,而不是在键入用户名时,在您的事件中,侦听器将
change
更改为
input
keyup
。很抱歉没有很好地说明问题。所以,我的问题是,我不能用我的脚本href,我也不明白为什么。根本没有修复@asdru谢谢你的回答,但是更改keyup并没有将href添加到my:(我只是注意到,如果我在这个响应上运行代码,我会得到我需要的。可能是我的计算机上的某个东西。
<html>
 <head>
    <title>the title</title>
 </head>
     <body>
       <input type="text" id="username" value="echo123"/><br>
   <br>
    <a id="call-btn">Call</a> <br>
    <a id="add-to-contacts-btn">Add to contacts</a> <br>
    <a id="view-profile-btn">View User Profile</a> <br>
    <a id="voice-email-btn">Voice Email</a> <br>
    <a id="chat-btn">Start Chat</a> <br>
    <a id="sendfile-btn">Send File</a> <br>

    <!-- ### PLACE HERE YOUR CODE AFTER YOUR HTML CONTENT     -->
    <script type="text/javascript" language="javascript">
         function el(elementId, username, action) {
             document.getElementById(elementId).setAttribute("href", "skype:" + 
              username + "?" + action);
         }

    function buildLinkRefs() {
        var username = document.getElementById("username").value;

        el("call-btn", username, "call");
        el("add-to-contacts-btn", username, "add");
        el("view-profile-btn", username, "userinfo");
        el("voice-email-btn", username, "voicemail");
        el("chat-btn", username, "chat");
        el("sendfile-btn", username, "sendfile");
      }

     document.getElementById("username").addEventListener("change", function () {
         buildLinkRefs();
     }, false);

    buildLinkRefs(); 
</script>