spurl 在 jquery miniui 中无法使用,求解决办法

#1 xgsong

简单的说就是在用 mini.open 打开一个 Window 时,写在Window.html里面的诸如 {spUrl c=main a=login}这样的代码无法解析,请问有什么解决方法没有?

2012-12-21 22:49:45

#2 jake

这里 http://www.speedphp.com/thread-3738-1-1.html

jQuery中的get是直接可以用spUrl的,不太清楚你说的是什么

2012-12-21 23:19:33

#3 xgsong

用语言描述确实比较难,我先贴张图

wenti.jpg

图里面的spUrl标识都无法解析,这段代码是在window.html里面,然后在index.html里用 miniui 的方法显示此html

mini.parse();
var grid = mini.get("datagrid1");
grid.load();
grid.sortBy("createtime", "desc");

function add() {
           mini.open({
                url:  "./tpl/main/window.html",
                title: "新增员工", width: 600, height: 360,
                onload: function () {
                    var iframe = this.getIFrameEl();
                    var data = { action: "new"};
                    iframe.contentWindow.SetData(data);
                },
                ondestroy: function (action) {
                    grid.reload();
                }
            });
        }

用 mini.open 的方法显示一个窗口,然后就报错了,不知道说清楚没,不太好描述

2012-12-22 00:42:10

#4 xgsong

我估计可能 window.html 不能解析 smarty 代码 ? 所以无法将 spUrl 的内容转变成 /www/qa/index.php?c=main&a=index这样的字符串吧 ?

2012-12-22 00:46:58

#5 jake

1. 不应该直接使用模板,而是要通过display来显示模板,否则模板不会被解析。看看 http://www.speedphp.com/thread-3723-1-1.html 这里理解一下为什么用frameset的时候要做几个action,而不能直接src引用模板。

也就是“./tpl/main/window.html” 这种直接引用模板的方式,只能是PHP执行display的时候使用,其他js或者html都不应该引用。

2. 区分javascript,smarty和html。javascript和html是运行在浏览器,而smarty是运行在服务器端的PHP程序里面,spUrl是smarty的函数,所以也只能在服务器端被解析(也就是要经过PHP才能用)。

3. 你的问题解决的方法也很简单。把引用“./tpl/main/window.html”变成服务器端引用,加一个action,它display这个模板。然后访问这个action就行。

4. 另外注意到你说index.html,你的首页也是html文件? 建议全部都用PHP+模板(HTML文件放tpl通过PHP引用出来)的方式出现,不建议HTML和PHP混搭做站。

2012-12-22 09:00:16

#6 xgsong

jake说的极是,index.html 这些都是模版,php 和 html 还是通过sp框架分离的,多谢jake解答

2012-12-22 14:18:50

#7 xpp1000

可以解析的我经常用,我发一个例子你看看

2017-09-09 20:08:13