js和vue方法的相互调用(iframe父子页面的方法相互调用)。
项目是前后端不分离的,模板引擎使用的JSP。
但是使用了Vue+ElementUI,这里列举一些常用的调用方式,有时候可能。
在js里调用vue方法
我们需要把方法注册到vue对象之外的页面,所以对与在methods中定义的方法,需要在mounted中注册给window。之后我们可以在js里直接调用,
在vue里调用js方法
直接使用window.方法名就可以调用
在主页面中调用iframe子页面的代码:
<!--主页面中的JS代码--> <script type="text/javascript"> //调用子页面的方法. var childWindow = $("#addFrame")[0].contentWindow; //表示获取了嵌入在iframe中的子页面的window对象。 []将JQuery对象转成DOM对象,用DOM对象的contentWindow获取子页面window对象。 childWindow.subFunction(); //调用子页面中的subFunction方法。 </script> <!--子页面中的JS代码--> <script type="text/javascript"> //子页面调用父页面中的方法。 window.parent.parentFunction(); //parentFunction是父页面中自定义的JS方法。 </script>
在iframe子页面(vue环境一样)中调用父页面代码:
子页面:
主页面:
在一个iframe子页面调用另一个iframe子页面的方法,并且同为Vue环境
主页面:
子页面1,调用的一方:
子页面2,被调用的一方,需要注册: