问题:
现在有两个用java模板引擎写的vm页面,要把它们改成HTML
父页面
父页面有个跳转链接,带了个叫callBackFun的参数,它的值是写在父页面的方法名
子页面
跳转子页面后要执行父页面对应的function
问题在于,在纯HTML里这样点callBackFun获取到的会是父页面的callBackFun,而不是我们想要的传参里那个方法名
parent.callBackFun
改造
首先获取到链接带的参数
getUrlParam是我封装的方法
父页面基本不用动,子页面改写
把
parent.callBackFun
转成字符串,就可以将callBackFun这个变量里的方法名加进去了,接着执行这个字符串
(new Function("return " + tempFun))()
这个方法据说是不安全的,可以参考参考 这个文章
【译】以 eval() 和 new Function() 执行JavaScript代码 - 简书
这里面说的方法也是有效的,可以考虑取缔我上面那种做法
此外,如果子页面所要调用的方法相对固定,那还有一种方法就是舍弃callBackFun传参,直接子页面调用父页面方法