在开始之前,我只想说我对javascript很陌生。但是我正在尝试对URL进行GET请求,该请求将返回一个字符串-只是一些非常简单的文本,然后创建一个变量,并用于为html元素设置属性。
这是我的代码:
var vendor;
var HttpClient = function() {
this.get = function(aUrl, aCallback) {
var anHttpRequest = new XMLHttpRequest();
anHttpRequest.onreadystatechange = function() {
if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
aCallback(anHttpRequest.responseText);
}
anHttpRequest.open( "GET", aUrl, true );
anHttpRequest.send( null );
}
}
var client = new HttpClient();
client.get('http://my.example.com/file.txt', function(response) {
mydata = response;
document.querySelector(".btn").setAttribute("onclick", "window.open('https://" + mydata + ".example.com')");
});
我希望在mydata变量中使用“ file.txt”的内容,然后使用setAttribute更改onclick属性。
它确实返回了响应,但向其中添加了回车符,并且在使用chrome javascript控制台显示“ mydata”时,它返回了:
"thetext
"
因此,在“ thetext”之后回车。
我的setAttribute最终看起来像:
<button class="btn btn-outline-dark btn-lg" onclick="window.open('https://textfromfile
.example.com')" ;="" type="button" name="buttonname">mybutton</button>
因此,在“ textfromfile”之后有一个回车符。
我假设回车符也存在于TXT文件中,因此当然也要返回它!
但是,您可以使用trim
以下命令轻松剥离它:
mydata = response.trim()
(请注意,这也会删除尾随空格。)
顺便说一句onclick
,与其设置那样,不如设置一个属性并有一个引用此属性的静态单击处理程序。甚至更好,因为似乎您正在使用Bootstrap:您可以使用带有的常规链接<a class="btn">
,使用使其在新窗口中打开该链接target="_blank"
,然后只需href
从代码中设置属性即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句