应该清楚的一点是对使用:
[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需要放置到框架页面中来。
[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需要放置到框架页面中来。