javascript - 如何使用 javascript 或 java 获取当前 url 用户位于 .jsp 文件中

标签 javascript java jsp url jstl

我想比较用户当前所在的url,如果它等于3个不同的url,则应该写入某个元标记,如果不是,则应写入另一个元标记。但是当我编写 JavaScript 时,它会将所有代码写为字符串,而不是执行

这就是我在 .jsp 文件中尝试的内容

<script type = "text/javascript">
    if(window.location.href == ("https://www.farmers.com/sitemap/"||"https://www.farmers.com/contact-us/send-message/" || "https://www.farmers.com/payments/") ) {
        document.write('<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">');
    } else {
        document.write('<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">');
    }
</script>

当我看到我得到的 View 页面源代码时,它永远不会执行

<script type = "text/javascript">
    if(window.location.href == ("https://www.farmers.com/sitemap/"||"https://www.farmers.com/contact-us/send-message/" || "https://www.farmers.com/payments/") ) {
        document.write('<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">');
    } else {
        document.write('<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">');
    }
</script>

我希望能够确定我所在的网址,并且一旦用户检查查看页面源代码,他们就可以看到他们所在的特定网址的特定元标记。 这应该用java还是javascript编写? 我如何让 JavaScript 执行并写入 View 页面源代码?

这是我的jsp文件

<%--

  ==============================================================================

  headlibs.jsp includes the scripts and css to be included in the head tag.

  ==============================================================================

--%><%@include file="/libs/foundation/global.jsp"%><%
%>

<cq:includeClientLib css="falcon.base.bootstrap.rwd"/>

<script type = "text/javascript">
    if(window.location.href == ("https://www.farmers.com/sitemap/"||"https://www.farmers.com/contact-us/send-message/" || "https://www.farmers.com/payments/") ) {
        document.write('<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">');
    } else {
        document.write('<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">');
    }
</script>



<script language="javascript1.2" src="/etc/designs/falcon/rwd/clientlibs_base/js/at.js"></script>

<script type="text/javascript" src="/etc/designs/falcon/rwd/clientlibs_base/js/respond.js">  
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

最佳答案

如果您只需要在现代浏览器中工作,那么您可以这样做...

["https://www.farmers.com/sitemap/ ","https://www.farmers.com/contact-us/send-message/ ","https://www.farmers.com/payments/ "].includes(window.location.href);

参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes用于旧版浏览器的填充。

如果您不想处理polyfill,也可以使用以下代码:

["https://www.farmers.com/sitemap/ ","https://www.farmers.com/contact-us/send-message/ ","https://www.farmers.com/payments/ "].join('').indexOf("https://www.farmers.com/payments/ ");

一旦到位,我认为您很快就会意识到,有很多这种类型的基本检查无法解释的边缘情况......您可能最终会问有关正则表达式或模式匹配的其他问题.

关于javascript - 如何使用 javascript 或 java 获取当前 url 用户位于 .jsp 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57227396/

相关文章:

javascript - 预期换行符为 'LF' 但发现 'CRLF' 换行符样式

javascript - 如何创建一个常量、 Action 创建器和 reducer 工厂?

java - 如何使用 keystore 中存储的自定义 key 执行 AES 加密?

java - 如何将所有值设置回原始起始值

java - 下载以 Blob 格式或二进制格式存储在 MySQL 数据库中的 PDF 文件时出现 Null 异常

javascript - AngularJS 中的语言环境过滤器 - 如何补偿渲染延迟?

javascript - jquery动态内容生成的动态内容

java - 获取所有 Java 保留关键字的列表

java - 如何循环访问数据库并打印表中的所有项目

java - JSTL 有哪些替代方案?