首页 > 解决方案 > 仅在特定网址上显示小部件

问题描述

我在网站的页脚中有一个脚本。如果 url 包含“mystring”,我希望显示小部件,如果不包含,则不显示

<script>
    if (window.location.href.indexOf("mystring") > -1) {
        <script type="text/javascript" src="https://vk.com/js/api/openapi.js?169"></script>
        <!-- VK Widget -->
        <div id="vk_community_messages"></div>
        <script type="text/javascript">
        if($(window).width()>800) { 
        VK.Widgets.CommunityMessages("vk_community_messages", 203651941, {expandTimeout: "20000",tooltipButtonText: "Any Question?"});
        }
        if($(window).width()<=800) {
        VK.Widgets.CommunityMessages("vk_community_messages", 203651941, {tooltipButtonText: "Any Question?"});
        }}
</script>

此代码产生以下错误:

未捕获的 SyntaxError:意外的标识符(字符串 3)

Uncaught SyntaxError: Unexpected token '}' (string 12)

标签: javascripthtmlvk

解决方案


<script>在外部<script>标签中有标签和其他 HTML,这是不允许的,而且永远不会工作。这是您在第一次学习 HTML 和 JavaScript 时应该学习的相当基本的东西。

这会更有意义(我不能轻易测试它,所以不能保证它会完全工作,但它肯定不会有任何基本的设计缺陷或语法错误,所以它应该为你指明正确的道路):

<div id="vk_community_messages"></div>

<script type="text/javascript" src="https://vk.com/js/api/openapi.js?169"></script>
<script>
    if (window.location.href.indexOf("mystring") > -1) {
        if($(window).width()>800) { 
          VK.Widgets.CommunityMessages("vk_community_messages", 203651941, {expandTimeout: "20000",tooltipButtonText: "Any Question?"});
        }

        if($(window).width()<=800) {
          VK.Widgets.CommunityMessages("vk_community_messages", 203651941, {tooltipButtonText: "Any Question?"});
        }
    }
</script>

推荐阅读