日期:2014-05-17  浏览次数:20538 次

Smarty 给JS文件传值的问题
index.php
$smarty->assign("txt_qq1",json_encode($txt_qq1));

index.html
<script language="JavaScript" src="templates/QQ/3yb.js"></script>
直接调用的js文件,其实就是QQ浮动的js文件。

syb.js
JScript code


var delta=0.15;
    var collection;
    function floaters() {
        this.items    = [];
        this.addItem    = function(id,x,y,content)
                  {
                    document.write('<DIV id='+id+' style="Z-INDEX: 10; POSITION: absolute;  width:80px; height:60px;left:'+(typeof(x)=='string'?eval(x):x)+';top:'+(typeof(y)=='string'?eval(y):y)+'">'+content+'</DIV>');
                    
                    var newItem                = {};
                    newItem.object            = document.getElementById(id);
                    newItem.x                = x;
                    newItem.y                = y;

                    this.items[this.items.length]        = newItem;
                  }
        this.play    = function()
                  {
                    collection                = this.items
                    setInterval('play()',10);
                  }
        }
        function play()
        {

            for(var i=0;i<collection.length;i++)
            {
                var followObj        = collection[i].object;
                var followObj_x        = (typeof(collection[i].x)=='string'?eval(collection[i].x):collection[i].x);
                var followObj_y        = (typeof(collection[i].y)=='string'?eval(collection[i].y):collection[i].y);

                if(followObj.offsetLeft!=(document.body.scrollLeft+followObj_x)) {
                    var dx=(document.body.scrollLeft+followObj_x-followObj.offsetLeft)*delta;
                    dx=(dx>0?1:-1)*Math.ceil(Math.abs(dx));
                    followObj.style.left=followObj.offsetLeft+dx;
                    }

                if(followObj.offsetTop!=(document.body.scrollTop+followObj_y)) {
                    var dy=(document.body.scrollTop+followObj_y-followObj.offsetTop)*delta;
                    dy=(dy>0?1:-1)*Math.ceil(Math.abs(dy));
                    followObj.style.top=followObj.offsetTop+dy;
                    }
                followObj.style.display    = '';
            }
        }    
        
    var theFloaters        = new floaters();
    theFloaters.addItem('followDiv1','document.body.clientWidth-110',100,'[color=#FF0000]{$txt_qq1}[/color]');
    theFloaters.play();




问题,我是想通过 $smarty->assign("txt_qq1",json_encode($txt_qq1)); 传值给 html 中js文件{$txt_qq1}'。
新手真是不知道该怎么操作了,请各位多帮忙

------解决方案--------------------
通过smarty传值也只能传到 index.html 文件。你可以这样做:
<input type="hidden" id="aa" value={$txt_qq1} />

然后用js来取id=aa的值不就行了。