我正在编写一个脚本,该脚本将获取有关您访问的网站的一些信息。我已经复制了我努力的那部分代码。代码的这一部分应该检查访问的网站是否正在使用www前缀并删除该前缀,然后我没有粘贴的代码的另一部分将域名存储在变量网站中。
var website = location.hostname;
document.getElementById("displayBefore").innerHTML = website; //test to see the variable
if (website[0] == 'w' && website[1] == 'w' && website[2] == 'w' && website[3] == '.') {
document.getElementById("displayTrue1").innerHTML = "true"; //test to see if the conditional was met
for (i = 4; i < website.length; i++) {
website[i - 4] = website[i]; //this is not rewriting anything
document.getElementById("displayPos0").innerHTML = website[i]; //test to see if the for loop has run
}
document.getElementById("displayDuring").innerHTML = website; //test to see the variable
website.splice(0, 4); //this is breaking everything after it
document.getElementById("displayAfter").innerHTML = website; //test to see the variable
}
当我在浏览器中将其拉出时,这是在这些测试中实际显示的内容:
WebsiteBeforeFix: www.example.com
True1: true
website[i]: m
WebsiteDuringFix: www.example.com
WebsiteAfterFix:
代码的两个无效部分如下:
website[i - 4] = website[i];
这应该使字母向左移动4个空格(消除“ www。”)。
website.splice(0,4);
实际上,这在任何有效的代码中根本不显示任何内容。谁能告诉我我可能做错了什么?
splice
是一个数组方法,不适用于字符串(它们是不可变的)。使用split
方法将变量设置为数组以对其进行操作,然后使用方法将其结合在一起join
:
var websiteStr = location.hostname;
var website = websiteStr.split('');
console.log("displayBefore: " + website.join(''));
if (websiteStr.indexOf("www.") === 0) {
console.log("true");
/*for (var i = 4; i < website.length; i++) {
website[i - 4] = website[i];
console.log("displayPos0: " + website[i]);
}*/
console.log("displayDuring: " + website.join(''));
website.splice(0, 4);
console.log("displayAfter: " + website.join(''));
}
无需处理HTML,您可以console.log
在特定点进行基本日志记录,这将显示在浏览器的控制台中。无论如何,您的for循环似乎并没有执行您想要的操作-splice
已经删除了“ www”。字首。
您还可以更改以下内容:
if (website[0] == 'w' && website[1] == 'w' && website[2] == 'w' && website[3] == '.') {
对此:
if (websiteStr.indexOf("www.") === 0) {
它更简洁地执行相同的操作。
使用固定的代码,它现在显示:
displayBefore: www.google.com
true
displayDuring: www.google.com
displayAfter: google.com
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句