利用js实现页面跳转,带数据

抽点时间分享个小东西。

利用js来实现页面跳转。

 
结论:
js实现页面跳转,并带数值过去;简答有效的方式就是建立一个临时form,用于数据传输。
起因: 系统要搞个操作日志记录。点击查看文件的排行榜,可以点击直接查看。
 
 
系统中的文件分为两种:
  • 一种是从其他网站爬过来的文章,将内容(建议存html,当然如果想要统一样式的话就存纯文本,分隔符等也存进去)存入数据库中。查看文件时,将存入的内容之间贴到html相应的位置。
like this:
 效果感觉还可以的。
 
  • 还有一种是文件:doc,xlsx,pdf此类。
 
由于文件在不同栏目下,访问地址或者说请求的接口不同。所以我就只记录了访问文件的url;
当初并没有记录此文件是在数据库中还是磁盘文件中,事后发现没必要记录。
 
基本思路:查询数据库,得到排行榜。 点击文件,ajax调用接口。
然后
这个时候要考虑的是,我应该怎么判断他返回的是文件还是下载,以及How to do!
 
①、尝试访问
②、观察返回结果
③、建立临时form 或者 打开新窗口展示PDF文件或下载
 
文件a标签,onclick事件
 
function showZXWJ(data1){
    //点击时刷新最新表格的访问量数据
    initTable(1,5);
    $.ajax({
        url: data1,
        success:function(data){
            if(data){
                var dataValue = data.items;
                var str = dataValue[0].content;
                var title = dataValue[0].lawsName;
                //将转移字符,替换为html
                str = str.replace(/\n  /g,"<br/>  ");
                str = str.replace(/\r/g,"");
                str = str.replace(/\n/g,"<br/>");
                str = str.replace(/(^\s*)|(\s*$)/g,'');
                str = "  " + str;
                var url = <%=basePath%>+'shouyeShowFile.do';
                //建立一个临时表,用于装载ajax请求得到的数据,数据可能很大,所以肯定选的是post
                var form = $("<form></form>").attr("action", url).attr("method", "post");
                form.append($("<input></input>").attr("type", "hidden").attr("name","fileName" ).attr("value", title));
                form.append($("<input></input>").attr("type", "hidden").attr("name","content" ).attr("value", str));
                form.appendTo('body').submit().remove();
            } else {
                window.open(data1);
            }
        }
    });
}
 
先尝试请求,当返回有值(因为系统接口中,所有关于查看下载的接口都没有返回值,所以可以这样判断,或者你可以看返回的结果有没有什么共通性)
时候,就建立临时表单用于传输装载数据。
否则开辟新窗口,下载OR展示。
 
form表单传输访问的接口如下 。
@RequestMapping(value="shouyeShowFile.do")
	public String findOne(FileBean fileBean,Model model){
		
		model.addAttribute("vo", fileBean);
		
		return "shouyeFileShow";
	}
 
展示页面,主要代码如下:
<body>
<div class="contentxw" id="viewData" style="">
		<div class="padd">
			<div class="BreadcrumbNav">
				<span
					style="float: right; cursor: pointer; color: #1a72a5; font-size: 30x;"
					onclick="back()"><img src="images/icofh.png" alt=""
					align="center"></span>
			</div>
			<div class="article oneColumn pub_border" id="scrollDiv"
				style="overflow-y: auto; height: 450px;">
				<h1>
					<span id="title" style="font-weight: bold;font-size: 28px;">${vo.fileName}</span>
				</h1>
				<div class="pages-date">
					<span class="fontsj" id="wenHao"></span>
				</div>
				${vo.content}
			</div>
		</div>
	</div>
</body>
 
 
总结:
js实现页面跳转,并带数值过去;简答有效的方式就是建立一个临时form,用于传输数据。
 
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现微信通讯录左右联动功能,需要使用锚点和JavaScript来控制页面滚动和显示。 1. 首先,在HTML中添加两个div,一个用于显示左侧联系人列表,一个用于显示右侧联系人详情。 ``` <div id="contact-list"></div> <div id="contact-detail"></div> ``` 2. 在JavaScript中,获取所有联系人数据并生成左侧列表。 ``` // 获取联系人数据 var contacts = [ { name: "张三", phone: "13811111111", email: "zhangsan@example.com" }, { name: "李四", phone: "13822222222", email: "lisi@example.com" }, { name: "王五", phone: "13833333333", email: "wangwu@example.com" }, // ... ]; // 生成左侧列表 var contactList = document.getElementById("contact-list"); for (var i = 0; i < contacts.length; i++) { var anchor = document.createElement("a"); anchor.href = "#" + i; anchor.innerText = contacts[i].name; contactList.appendChild(anchor); } ``` 3. 再添加一个事件监听器来响应左侧列表的点击,并在右侧显示相应的联系人详情。 ``` // 响应左侧列表的点击 contactList.addEventListener("click", function(event) { event.preventDefault(); // 阻止默认跳转行为 var index = parseInt(event.target.href.split("#")[1]); var contact = contacts[index]; var detail = document.getElementById("contact-detail"); detail.innerHTML = "<h2>" + contact.name + "</h2><p>电话:" + contact.phone + "</p><p>邮箱:" + contact.email + "</p>"; }); ``` 4. 最后,使用CSS样式美化页面,使左侧列表和右侧详情呈现出微信通讯录的样式。 ``` #contact-list { float: left; width: 200px; height: 100%; overflow-y: scroll; border-right: 1px solid #ddd; } #contact-list a { display: block; padding: 10px; border-bottom: 1px solid #ddd; } #contact-list a:hover { background-color: #f2f2f2; } #contact-list a.active { background-color: #f2f2f2; font-weight: bold; } #contact-detail { float: left; width: calc(100% - 200px); height: 100%; padding: 20px; } #contact-detail h2 { margin-top: 0; margin-bottom: 10px; } #contact-detail p { margin: 0; line-height: 1.5; } ``` 这样,就可以实现微信通讯录左右联动功能了。当点击左侧列表中的联系人时,页面会自动滚动到对应位置,并在右侧显示联系人的详细信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值