文档中心 边缘应用 页面自适应改写

页面自适应改写

更新时间:2023-11-30 11:03:29

本章示例为通过【边缘函数】实现页面自适应。
代码说明:对于使用Chrome浏览器访问的终端,页面会被改写,其他浏览器终端访问,显示原文。

详细代码

async function handleRequest(request) {
    let response = await fetch(request)
    response.headers.set("X-Version", "petshop-v1")
    if (isFromChrome(request) && isHtml(response)) {
        console.log("rewrite page")
        let body = await response.text()
        body = body.replace('Make Your Pets Happy', '让您的宠物永远快乐!')
        body = body.replace('Dolore tempor clita lorem rebum kasd eirmod dolore diam eos kasd.', 
                            '只有用Chrome浏览器访问才会改写</br>其他浏览器访问将显示原文</br>')
        return new Response(body, response);
    } else {
        console.log("pass page")
        return response
    }
}

function isFromChrome(request) {
    let userAgent = request.headers.get("User-Agent")
    return userAgent && userAgent.toLowerCase().includes("chrome")
}

function isHtml(response) {
    let contentType = response.headers.get("Content-Type")
    return contentType && contentType.toLowerCase().includes("text/html")
}
                    
addEventListener("fetch", event => {
    return event.respondWith(handleRequest(event.request))
})

注:页面改写的应用很广泛,线上成熟的场景有敏感词审计、外链改写、全站IPv6访问支持等。

本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!