Prototype之Ajax.Updater不能正确引入脚本的问题

应该清楚的一点是对使用:
[code]new Ajax.Updater(
{success: divname},
uri,
{
method: 'get',
parameters: pars,
evalScripts: true,
onFailure: reportError
})[/code]
这里正确的设置了evalScript:true表示加载的内容不会过滤掉<script...等。但是不表示能加载[code]<script language="javascript" type="text/javascript" src="path for js file"></script>[/code]
所对应的js资源,因为prototype在执行[code]<script>alert("123")</script)[/code]中的脚本的时候使用的是eval.为此上面脚本的执行结果为eval('alert("123")')。那么怎么来解决关于存在于独立的文件中的js脚本问题,则可以参看如下的实现:
[code]/**
*prototype-exp.js
*Used for load the css or js code in div area..
*for the prototype not support the js code in dep.. file
*/
var View_load;
(function(){
if (View_load == null)
View_load = new Object();
var UNDEFINED;

View_load.loadjs = function (scriptid,jsurl){
var scriptTag = document.getElementById(scriptid);
if(scriptTag) document.body.removeChild(scriptTag);
script = document.createElement('script');
script.setAttribute("src",jsurl);
script.type = 'text/javascript';
script.id = scriptid;
document.body.appendChild(script);
}

View_load.loadcss = function(cssid,cssurl){
var scriptTag = document.getElementById(cssid);
if(scriptTag) document.body.removeChild(scriptTag);
css_ = document.createElement('link');
css_.rel="stylesheet";
css_.setAttribute("href",cssurl);
css_.type = 'text/css';
css_.id = cssid;
document.body.appendChild(css_);
}
})();[/code]

这里主要解决了引入也面中不能正常加载js和css文件的问题.可以使用如下方式调用。
[code]<script language="javascript" type="text/javascript">
View_load.loadjs("","/js/sayhello.js");
View_load.loadcss("","css/cssa.css");
</script>[/code]

需要注意的一点是prototype-exp.js需要放置到框架页面中来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值