JavaScript 无法用 URL 替换字符串

标签 javascript html

我正在参加 Udacity 的 Javascript 类(class)。该项目是建立一份简历。该类(class)和其他问题都没有真正回答我的问题。

有一个resumeBuilder.js 文件和一个helper.js 文件。 helper.js 文件包含带有需要替换的字符串的变量,例如 %data% 。 我修改了变量之一myTwittermyWebsite并添加了一个 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/

相关文章:

javascript - 按属性比较元素

asp.net - 这是什么意思?

javascript - 如果我使用 &lt;input&gt;,则使用 jQuery 停止 CSS 动画

javascript - 在 Javascript 中向当前日期添加 2 年

javascript - 如何处理 JavaScript 中响应中的大数值?

html - 显示父元素时显示 HTML 子元素 :none

javascript - 如何动态设置iframe高度?

javascript - 使 Div 在函数中可见时出错

javascript - Protractor 不适用于我的具有不同字符的按钮

javascript - 从 Javascript 控制台访问 jsFiddle 中的变量?