繁体   English   中英

使用Javascript在实时网站上创建测试环境

[英]Using Javascript to create a test environment on live website

我目前正在使用Salesforce Desk平台的后端,尝试对依赖的下拉菜单进行编码。 他们使用所谓的“案例主题”(Case-Themes),基本上是为客户端界面页面呈现布局。 问题是,当我创建自己的测试用例主题时,如果不发布它并使之生效就无法预览它。

我的问题是,如果我要使用Javascript基于参数值创建条件,这是否是发布实时主题而不弄乱前端视图/功能的有效方法?

<body>
<!-- Okay to Edit - Test Area -->
<div class="test_wrapper">
    <div class="test_header">
        <h1>DEVELOPMENT MODE</h1>
    </div>
    <hr>
    <div class="test_body">
        <h2>Development Header</h2>
        <p>Lorem ipsum dolor sit amet, consectetur </p>
    </div>
    <hr>
    <div class="test_footer">
        <h2>Development Header</h2>
        <p>Voluptate necessitatibus inventore explicabo blanditiis veniam odio.</p>
        <div id="test_button">Click</div>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elitinventore eligendi.</p>
        <br>
        <h2>Development SubSubHeading</h2>
        <p>Lorem ipsum dolor sit amet, consectetur quis veritatis.</p>
    </div>
    <script>
        $('#test_button').click(function(){
            alert('You are currently in Test Mode');
        });
    </script>
</div>
<!-- End Test Area -->

<!-- Don't Touch - Live Area -->
<div class="live_wrapper">
    <div class="live_header">
        <h1>Live Mode</h1>
    </div>
    <hr>
    <div class="live_body">
        <h2>Live Subheading </h2>
        <p>Lorem nis placeat vitae in qui iste laborum sequi ea.</p>
        <p>Lorem delectus possimus ipsam ex, doloribus placeat. Perspiciatis.</p>
    </div>
    <hr>
    <div class="live_footer">
        <h2>Live Subheading </h2>
        <p>Lorem veniam tempore provident minima, consequuntur. Qui iure blanditiis veniam odio.</p>
        <div id="live_button">Click</div>
        <p>Lorem vero illum necessitatibus iste rem pariatur quos autem inventore eligendi.</p>
        <br>
        <h2>Live SubSubHeading </h2>
        <p>Lorem tus porro eligendi autem optio facilis quis veritatis.</p>
    </div>
    <script>
        $('#live_button').click(function(){
            alert('You are currently in Live Mode');
        });
    </script>
</div>
<!-- End Live Area -->
<script>
    $(document).ready(function(){
        if (window.location.search.indexOf('mode=test') > -1) {
            $('.live_wrapper').hide();
            $('.test_wrapper').css('display', 'block');
            } else {
            $('.test_wrapper').hide();
            $('.live_wrapper').css('display', 'block');
        }
    });
</script>

如您所知,除非URL具有?mode=test ,否则应呈现实时代码。 有人可以指出这样做的危险/缺点吗?

我将为此使用CSS(在要隐藏的容器上使用display:none)。 使用查询参数的唯一缺点是,如果用户尝试,则可以查看您的测试HTML。 如果那不是问题,那就去解决。

只要确保您不公开任何人可以利用的API。

正如Dark Falcon在评论中所说,它将在等待JavaScript触发时短暂显示。 我建议将一个类添加到JS在测试模式下添加的body标签中,然后您可以执行以下操作:

body.test .live_wrapper {
   display: none;
}
body.test .test_wrapper {
   display: block;
}
body .live_wrapper {
   display: block;
}
body .test_wrapper {
   display: none;
}

基本上,将实时模式设置为默认模式,直到将主体的类别设置为“测试”为止

if (window.location.search.indexOf('mode=test') > -1) {
   $('body').addClass('test');
}

当然,除非您打算即时在它们之间进行更改,否则,假设您使用的是服务器端代码,则最好通过服务器端代码打开或关闭它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM