在javascript中使用Flask传递过来的参数时候会报错:

Uncaught SyntaxError: Unexpected token '  

经常会有字符 空格 ' "" 等被转义成其他字符,这其实是特殊字符的转义,说明Flask传递给js的是字符串形式,虽然这两个看起来很相似,但实际上它们是不同的,python字符串有u前缀标示,而javascript中是没有的,所以,我们需要把Flask参数转换成json传递,在后端我们这样做:

    ui_arg = {"active_id": "location_system", "subtitle": "定位系统"}
    return render_template('base.html', user=current_user, uiarg=json.dumps(ui_arg))

传递了json类型,在后端我们使用safe 筛选器阻止Flask模板引擎把 ' 转换成 ' 然后就可以使用:

var variable = {{ uiarg|safe }};  

接收json参数,并对前端进行操作了。

再记录一点其他东西(js中ready和onload的区别):

页面加载完成有两种事件

一是:ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件)

二是:onload指示页面包含图片等文件在内的所有元素都加载完成。

(可以说:ready 在onload 前加载!!!)一般样式控制的,比如图片大小控制放在onload 里面加载;而js事件触发的方法,可以在ready 里面加载;