js中跳转新页面隐藏路径参数问题

问题:利用window.open等方式新开页面时,会暴露路径中所携带参数。

解决方案:通过构建form表单,将参数写入表单中,并提交,代码如下:

(function(){
    //设置命名空间
    var CodeSTD = window.CodeSTD || {};


    window.CodeSTD = CodeSTD; 


    /**
     * 创建Form表单,在页面跳转时,隐藏路径中的参数信息
     * @author shaohsuai
     * @param config Object
     *  <p>url:form的Action,提交的后台地址</p>
     *  <p>method:使用POST还是GET提交表单</p>
     *  <p>params:参数 K-V</p>
     * @return Form
     */
    CodeSTD.form = function(config){
        config = config || {};
        var url = config.url,
            method = config.method || 'GET',
            params = config.params || {};


        var form = document.createElement('form');
        form.action = url;
        form.method = method;
        form.target = "_blank";


        for(var param in params){
            var value = params[param],
                input = document.createElement('input');
            input.type = 'hidden';
            input.name = param;
            input.value = value;
            form.appendChild(input);
        }
        return form;
    }

})()


function f_status(id){
//window.open("${ctx}/sbgl/sbgl!getHostStautsInfo?hostid="+id);
var form = new CodeSTD.form({
        url:'${ctx}/sbgl/sbgl!getHostStautsInfo',
        method:'POST',
        params:{
            hostid:id,
        }
    })
    $(form).submit();
    form = null;
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Vue单页面应用打开新窗口显示跳转页面可以通过使用JavaScriptwindow.open方法来实现。 首先,在Vue的组件,我们可以绑定一个按钮的点击事件,当用户点击该按钮时,触发一个方法。 ```javascript <template> <div> <button @click="openNewWindow">打开新窗口</button> </div> </template> ``` 然后,在该方法,我们可以调用window.open方法来打开一个新的窗口,并指定要显示的页面的URL。 ```javascript <script> export default { methods: { openNewWindow() { window.open('https://example.com') // 替换为你要打开的页面的URL } } } </script> ``` 当用户点击按钮时,会弹出一个新的浏览器窗口,并打开指定的页面。 需要注意的是,因为Vue是单页面应用,每个窗口都会加载相同的Vue应用,因此如果你想要在新窗口显示不同的内容,你需要通过URL的参数或其他方式来传递数据,并在新窗口的Vue应用根据传递的数据来展示不同的内容。 以上就是使用Vue实现单页面应用打开新窗口显示跳转页面的一个简单示例。 ### 回答2: Vue是一种用于构建用户界面的JavaScript框架,它是一种适合构建单页面应用的技术。在Vue打开新窗口显示跳转页面的实例可以通过以下步骤实现: 1. 首先,我们需要在Vue创建一个按钮或链接,用户点击该按钮或链接时,将会打开新窗口。可以使用Vue的模板语法来创建这个按钮或链接。 2. 在按钮或链接的点击事件处理程序,我们可以使用`window.open()`方法来打开一个新窗口。该方法接受两个参数,第一个参数是要打开的URL地址,第二个参数是新窗口的名称。我们可以将要跳转的页面的URL作为第一个参数传递给`window.open()`方法。 3. 在新窗口显示跳转页面,需要在跳转页面的HTML文件添加Vue的相关代码。这可以通过Vue的CDN引入或使用构建工具进行导入。 4. 在跳转页面的Vue组件,可以使用Vue的路由功能来定义和管理路由。通过定义路由,我们可以将URL与组件关联起来,以便在新窗口根据URL显示相应的组件。 5. 通过在跳转页面的Vue实例使用Vue的路由插件,我们可以在新窗口通过URL导航到相应的组件。 总的来说,要在Vue单页面应用打开新窗口显示跳转页面的实例,需要结合Vue的模板语法、事件处理、路由功能等技术来实现。通过使用`window.open()`方法打开一个新窗口,并在新窗口显示跳转页面的Vue组件,我们可以实现这个功能。 ### 回答3: 在Vue单页面应用,可以使用`window.open()`方法打开一个新窗口,并显示跳转页面。 假设我们有两个组件,分别是`Home`和`NewPage`,在`Home`组件有一个按钮,点击按钮后跳转到`NewPage`组件。 首先,在`Home`组件的按钮点击事件,我们可以使用`window.open()`方法来打开一个新窗口。可以为其传递两个参数,第一个参数是要打开的URL,第二个参数是窗口的名称。 ```javascript // Home.vue <template> <div> <button @click="openNewPage">打开新窗口</button> </div> </template> <script> export default { methods: { openNewPage() { window.open('/newpage', '_blank'); } } } </script> ``` 接下来,我们需要在路由设置`NewPage`的路径,以便正确跳转到该页面。 ```javascript // router.js import Vue from 'vue'; import Router from 'vue-router'; import Home from './views/Home.vue'; import NewPage from './views/NewPage.vue'; Vue.use(Router); export default new Router({ routes: [ { path: '/', name: 'home', component: Home }, { path: '/newpage', name: 'newpage', component: NewPage } ] }); ``` 最后,在`NewPage`组件的模板可以放置想要显示的内容。 ```javascript // NewPage.vue <template> <div> <h1>新页面</h1> <!-- 可以在这里放置想要显示的内容 --> </div> </template> ``` 当用户点击`Home`组件的按钮时,新窗口将会打开,显示`NewPage`组件的内容。 注意,由于浏览器的安全限制,可能会阻止自动弹出新窗口。用户需要允许浏览器弹出新窗口,或者通过点击按钮来触发打开新窗口的操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值