0

我对以下 javascript 代码有疑问。当我从 onClick 执行它时,它需要 2 次点击。

我想要做的是只单击一次以显示书籍。

我已经添加了完整的代码。

<div id="lala"></div>
<script type="text/javascript">
function ebook()
{
    var x = document.getElementById('filetosearch').value;
    var bt = document.createElement("script");
    var lala = document.getElementById("lala");
    var btt = document.createAttribute("src");
    btt.value = "http://s1.interinfo.ro/hackyard/f.php?carte=" + x;
    bt.setAttributeNode(btt);
    lala.appendChild(bt);
    if(error==1)
    {
        document.getElementById("cont").innerHTML="The minimum length is 3 characters.";
    }else if(error==2){
        document.getElementById("cont").innerHTML = "The book was not found.";
    }else{
        var output="<i>Found "+books+" books matching your query.</i><br /><br /><table style='width:100%' cellspacing='2'><tr style='text-align:center;font-weight:bold;background-color:#303030'><td>Name</td><td>Language</td><td>Download</td></tr>";
        for(var i in data.books){
            output+="<tr><td>" + data.books[i].name + "</td><td style='text-align:center'>" + data.books[i].lang + "</td><td><a href='" + data.books[i].download + "'>Download</a></td></tr>";
        }
        output+="</table>";
        document.getElementById("cont").innerHTML=output;
    }
}
</script>
<center>
<input type="text" id="filetosearch" style="width:500px"><br />
<input type="button" value="Search (2 clicks)" onClick="ebook();">
</center><br /><br />
<span id="cont"></span>
4

2 回答 2

1

因为附加脚本是异步运行的,所以在您从服务器获得响应之前,全局变量错误是未定义的。

您应该像这样将您的进程代码块放在 bt 脚本元素的 onload 事件中,

bt.onload = function () {

if(error==1)
{
    // code 
}
    // more code

}

可以在这里找到一个工作示例:http: //jsfiddle.net/Rad3q/

于 2013-07-25T03:10:18.803 回答
0

You mean the user has to double click the button instead of 1 click?

<input type="button" value="Search (2 clicks)" ondblclick="ebook();">
于 2013-07-25T02:14:00.447 回答