使用ajax请求在新页面打开html文本

目前项目使用的大前端的开发方式,使用token作为前后台交互的凭证,但是遇到这样一个问题收集平板终端需要显示一个webview,这个webview还可以继续访问其他页面。这种不想jsp有session,cookie这种回话机制维护,也不向前端项目有路由交互,所以需要将html文本在新页面中显示出来。其实js打开一个新页面很简单,window.open(url),但是这个web1.0的方式传递不了header等复杂信息,如果要传递的话就要使用ajax。

ajax将文本获取回来后怎么显示呢,

(1)将本页面中的body元素的innerHTML替换掉,这样简单的html文本可以,这种只能在本页面渲染,不能回退。并且如果遇到复杂的带css,js文件,外部样式的完整的htm就不行了,恰巧我遇到的就是要显示这种

(2)这种方式是我从看别人也有这种问题,其他答主的回答

$.ajax({
url: '…………',
success: function(resp){
var newWin = window.open('', '_blank');
newWin.document.write(resp);
}
});

方式很巧妙,可以回退,但是同样只能处理简单的html文本,遇到复杂js,css照样不渲染,歇菜

最后本猿还是想到了一个方式,将文本保存到流中,然后放到a标签中,调用js点击,显示。不说了,上代码

$.ajax({
url: '…………',
success: function (res) {
                    var content = res;
                    var data = new Blob([content],{type:"text/html"});
                    var downloadUrl = window.URL.createObjectURL(data);
                    var anchor = document.createElement("a");
                    anchor.href = downloadUrl;
                    anchor.click();
                }   
});

ok,搞定。

20190118 更新。。。

经过终端测试,安卓端是可以的,IOS却点击不了,经过IOS开发的小伙伴调查,终于得出结果,使用正常的url点击不用处理,但是如果href是Bolb的话要在webview使用的时候添加WKNavigationActionPolicyAllow配置

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 使用Ajax实现让txt文本面上弹出的步骤如下: 1. 在HTML,首先需要有一个按钮或者触发事件的元素,用来触发Ajax请求。 2. 给该按钮或者触发事件的元素添加点击事件,当点击触发时,调用Ajax请求的函数。 3. 在Ajax请求的函数使用XMLHttpRequest对象创建一个请求。 4. 设定请求的方法和请求的URL,以及是否异步。 5. 当请求状态改变时(onreadystatechange事件触发),使用responseText属性获取服务器返回的数据。 6. 创建一个HTML元素(如div或者p标签)来弹出输入文本,将获取的文本数据作为该元素的内容。 7. 将该HTML元素添加到面的特定位置,使其在面上弹出。 8. 如果需要,可以对弹出的输入文本进行样式设置,让它更加美观。 总结:使用Ajax可以通过异步请求获取服务器返回的txt文本数据,并将它以弹出的形式展示在面上。以上述步骤为基本框架,可以根据具体需求进行修改和补充。 ### 回答2: 要实现ajax弹出输入文本,首先需要在面上定义一个文本输入框和一个按钮。当用户点击按钮时,通过ajax请求将输入的文本发送到服务器端进行处理,并将服务器返回的结果显示在面上。 具体步骤如下: 1. 在面上定义一个文本输入框和一个按钮,用于用户输入文本和触发ajax请求。 2. 使用JavaScript监听按钮的点击事件,当按钮被点击时获取输入框文本内容。 3. 使用ajax发送POST请求到服务器端,将输入的文本内容作为数据传递给服务器。 4. 服务器端接收到数据后进行处理,例如保存到txt文件。 5. 服务器端处理完成后,将结果返回给ajax请求的回调函数。 6. 在ajax的回调函数,将服务器返回的结果显示在面上,可以使用弹出窗口或者动态添加元素等方式进行展示。 总结起来,ajax弹出输入文本的实现主要涉及到前端与后端的交互,通过ajax将用户输入的文本发送到服务器进行处理,并将处理结果返回给前端进行展示。这样就实现了在面上弹出txt文本的功能。 ### 回答3: Ajax是一种在不刷整个面的情况下,通过与服务器进行异步通信来更部分面的技术。它可以通过与服务器交换数据,在不打断用户操作的情况下,将数据动态加载到当前面上。 对于“ajax弹出输入文本”,这个功能可以通过以下步骤实现: 1. 在面上创建一个按钮或链接,用于触发弹出输入文本的操作。 2. 使用JavaScript编写一个函数,用于处理按钮或链接的点击事件。 3. 在该函数使用Ajax发送一个请求到服务器,请求返回一个包含输入文本的弹出窗口。 4. 服务器接收到请求后,根据请求参数处理逻辑,并生成一个包含输入文本面内容。 5. 服务器返回响应,将弹出窗口面的内容发送到客户端。 6. 客户端接收到服务器的响应后,将响应内容添加到当前的一个元素(如一个div)。 7. 弹出窗口面的内容将在该元素显示,从而实现了在面上弹出输入文本。 需要注意的是,这只是基本的步骤,具体实现还需要根据具体的需求和技术栈进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值