You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改现有代码将URL中的&amp%3B替换为&以生成正确访问链接

代码修改方案

问题原因

URL出现&amp%3B异常字符的核心原因是Blade模板的{{ }}输出语法默认会对特殊字符做HTML实体转义:路由生成的原始参数分隔符&会被转义为&,多次转义后就出现了你看到的异常格式。

修改步骤

只需修改onRegionClick回调中URL生成的相关代码即可,首先把默认转义的{{ }}语法替换为不转义直接输出的{!! !!},如果担心还有残留转义字符,可以额外加一层字符串替换做双重保险。

修改后的完整代码

var jQuery_1_8_2 = jQuery.noConflict();
$(function () {
    var array = JSON.parse('{!! !empty($total_search_query) ? json_encode($total_search_query) : "[]" !!}');
    console.log(array);
    $('#map2').vectorMap({
        map: 'indonesia-adm1_merc',
        backgroundColor: '#ADF3F0',
        regionStyle: {
            initial: {
                fill: '#FFFFFF'
            },
            hover: {
                fill: '#175083'
            }
        },
        zoomButtons: false,
        zoomOnScroll: false,
        zoomOnClick: false,
        zoomMax: 1,
        normalizeFunction: 'polynomial',
        onRegionClick: function (event, code) {
            // 把{{ }}改为{!! !!}取消HTML转义
            var url = '{!! route("search", ["q" => request()->get("q"), "province" => ":id"]) !!}';
            url = url.replace("%3Aid", code.toLowerCase());
            // 兜底替换所有异常转义的字符,避免出现漏网的转义内容
            url = url.replace(/&amp%3B/g, '&').replace(/&/g, '&');
            window.location.href = url;
        },
        onRegionTipShow: function (event, label, code) {
            var map = $('#map2').vectorMap('get', 'mapObject');
            var regionName = map.getRegionName(code);
            var a = array.find(a => a.name === myTrim(regionName))['count'];
            
            label.html('<div class="map-tooltip"><h4 class="header">' + regionName + '</h4><p class="description">Total: ' + a + '</p></div>');
        }
    });
}(jQuery_1_8_2));

内容的提问来源于stack exchange,提问作者ocanrivera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:06:00