Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法从JSON模板正确转义内联JS_Javascript_Json_Knockout.js - Fatal编程技术网

Javascript 无法从JSON模板正确转义内联JS

Javascript 无法从JSON模板正确转义内联JS,javascript,json,knockout.js,Javascript,Json,Knockout.js,下面是我的JSON模板中的一个片段,我正在努力正确地转义一些内联JS: "output" : "... <a data-bind=\"attr: { href: '/click?url=' + encodeURIComponent(imageLnk()) .replace(/'/g,\"%27\") .replace(/"/g,\"%22\"), onclick: '

下面是我的JSON模板中的一个片段,我正在努力正确地转义一些内联JS:

"output" : "...
            <a data-bind=\"attr: { href: '/click?url=' + 
            encodeURIComponent(imageLnk())
            .replace(/'/g,\"%27\")
            .replace(/"/g,\"%22\"), 
            onclick: 'return sl(this,\\'nw\\',\\'' + $root.moduleId() + '_i' + 
            $data.index() + '-1\\');' }\">
                <img data-bind=\"attr: { src: imageSrc, alt: imageAlt }\">
            </a>
            ..."
“输出”:。。。
..."
忽略我的空白。我加上它是为了清晰


我的问题是在
.replace(/“/g,\%27\”).replace(/“/g,\%22\”)
部分中转义引号(
”)。有什么想法吗?

因为没有人有胆量涉过我的JSON(谁能诚实地责怪任何人不想这么做?),我决定通过在我的模型上附加一个名为
encodeLink
的函数来回避我的问题,该函数只返回上面发布的内联淘汰JS。然而,我仍然想知道如何正确地转义上面的代码(如果可能的话)

我倾向于创建一个自定义绑定处理程序(例如“url”),并将所有转义代码放在其中。现在你的观点有太多的逻辑;除此之外,如果您必须在实现某些内容安全策略的环境中运行(您可能必须使用安全绑定插件之类的东西,该插件不允许在绑定中调用函数),这将对您造成不利影响