有时候,链接会在我的网站上打开页面,并在其末尾显示奇怪的文字(如Facebook)。我想删除该文本,因为我的页面不会显示在那里。
例如,我想要做的是告诉我的网页,如果网址在英镑符号后面有文字,请删除它并在没有它的情况下打开网址。
因此,如果有人打开我的页面: http://www.example.com/news/stories/this-is-a-news-story/#sthash.MmwTdqVa.dpuf 我希望它能够纠正并打开页面 http://www.example.com/news/stories/this-is-a-news-story/
我该怎么做?我知道如何用PHP做到这一点,但我是ColdFusion的新手。
谢谢! 布伦丹
答案 0 :(得分:0)
您使用的是AddThis.com这样的服务吗?如果是这样,这些(和其他)营销服务可以将URL添加到URL以用于跟踪目的。它们是无害的,但是这里有关于如果您使用其服务时如何删除它们的AddThis说明。 (在执行此操作之前,请检查您的营销团队。)
http://www.addthis.com/academy/removing-hashtags-anchors-and-tracking-codes-from-your-urls/
该片段不会传递给ColdFusion服务器,也不会传递给CGI范围。它只能在客户端浏览器中使用和使用。这不应该导致" ColdFusion"生成页面,所以你的问题可能是由于javascript。打开Web Developer工具(F12)以识别可能由意外片段引起的任何javascript错误。 (您没有提供网址或错误消息,因此很难解决您可能遇到的问题。)
这是StackOverflow上的现有解决方案,您可以使用它来删除客户端片段:
https://stackoverflow.com/a/13824103/693068
// remove fragment as much as it can go without adding an entry in browser history:
window.location.replace("#");
// slice off the remaining '#' in HTML5:
if (typeof window.history.replaceState == 'function') {
history.replaceState({}, '', window.location.href.slice(0, -1));
}
我只建议在页面加载期间执行此操作一次,并且可能包含一个过滤器以保留您实际想要保留的任何片段。
作为旁注,我偶尔会在没有任何匹配的<a href="#top">Go to Top</a>
元素的长页面中添加#top
。通常,任何未找到的ID都会强制浏览器自动滚动到顶部。