我正在参加 Udacity 的 Javascript 类(class)。该项目是建立一份简历。该类(class)和其他问题都没有真正回答我的问题。
有一个resumeBuilder.js 文件和一个helper.js 文件。 helper.js 文件包含带有需要替换的字符串的变量,例如 %data%
。
我修改了变量之一myTwitter
至myWebsite
并添加了一个 HTML 标签以在新选项卡中打开我的网站。
在resumeBuilder.js 文件中,我有以下变量:
var myWebsite = HTMLwebsite.replace("%data%", "http://learn.website.com");
myWebsite = HTMLwebsite.replace("%website%", "www.website.com");
...应该替换 helper.js 中此变量中的字符串:
var HTMLwebsite = '<li class="flex-item"><span class="orange-text">website</span><span class="white-text"><a href="%data%" target="_blank">%website%</a></span></li>';
在index.html页面上,出现网站和链接;但是,当我单击 www.website.com 的链接时,它会在我的浏览器 (Firefox) 中打开一个新选项卡,但会将我带到以“%data%”结尾的本地文件路径,例如:
file:///C:/Users/user/Documents/Education/Javascript/udacity/git_repos/frontend-nanodegree-resume/%data%
当我将 helper.js 的变量硬编码为以下内容时,它会将我定向到我想要的 URL:
var HTMLwebsite = '<li class="flex-item"><span class="orange-text">website</span><span class="white-text"><a href="http://learn.website.com" target="_blank">%website%</a></span></li>';
我想知道如何不对 helper.js 进行硬编码并使用resumeBuilder.js 中的replace 方法来使URL 正常工作。
我还尝试添加 \
旁边/
和:
字符和变化%data%
至\"%data%\"
在helper.js和resumeBuilder.js中,但这并没有解决它。
谢谢!
最佳答案
问题是您的第二个 replace
不是从前一个结果开始,而是再次从原始变量开始。所以第一个replace
的效果就丢失了
更改为:
var myWebsite = HTMLwebsite.replace("%data%", "http://learn.website.com");
myWebsite = myWebsite.replace("%website%", "www.website.com");
关于JavaScript 无法用 URL 替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39689653/