【发布时间】:2018-07-26 07:49:19
【问题描述】:
我正在使用下面的代码来修改图像 url(基本上将 'admin' 添加到 'news' div 内的 URL 的开头。这对于我想要做的事情很好,但它会导致其他一些问题问题,例如阻止嵌入的推文和阻止显示放置在“新闻”div 中的一些广告。
有没有更好的方法来实现我想要的并且不会影响其他代码,因为我一生都无法理解为什么它会导致其他代码出现问题,但删除以下内容可以解决推文和广告?
function replaceText(){
var theDiv = document.getElementById("news");
var theText = theDiv .innerHTML;
theText = theText.replace(/ckfinder/g, 'admin/ckfinder');
theDiv.innerHTML = theText;
}
这是我正在修改的图片路径:
<img height="267" src="/ckfinder/userfiles/images/XXX/XXX.jpg" width="400" />
但必须是:
<img height="267" src="admin/ckfinder/userfiles/images/XXX/XXX.jpg" width="400" />
【问题讨论】:
-
不看它坏了什么是不可能的。解决此问题的唯一方法是找到一种模式,该模式适用于您希望应用替换的情况,而不适用于您不希望替换的情况。就这么简单。例如,如果其他元素在 href 中包含此内容,则可以将
src="/ckfinder/替换为src="admin/ckfinder/。或者使用正则表达式,只替换图像文件。简而言之,根据当前可用的信息,不可能为您的问题提供答案。 -
你能在想要的替换和不需要的替换之间找到足够的具体差异,以便将它们毫无例外地分开吗?如果您不知道如何编写代码,请描述它们之间的差异,然后有人会帮助您将其转换为代码形式,因为您已经展示了最少的研究工作(自己编写代码的合理尝试)。
-
也许通过在正则表达式中包含正斜杠? f.e.
theText = theText.replace(/\"\/ckfinder\//g, '\"admin/ckfinder/'); -
您应该更新
src属性而不是标签内的 HTML ..
标签: javascript text replace