我有jquery
个文件集。就像这样:
<script src="js/PortalJs/jquery-ui-personalized-1.6rc2.min.js" type="text/javascript"></script>
<script src="js/PortalJs/inettuts.js" type="text/javascript"></script>
如何在加载特定更新面板后调用这些文件。
答案 0 :(得分:2)
这是我用来动态添加依赖项的函数
function addDependencies(args) {
var head = document.getElementsByTagName('head')[0];
// todo refactor this logic
function exists(tag, src) {
var elms = document.getElementsByTagName(tag);
for (var i=0; i<elms.length; i++) {
if (elms[i].getAttribute('src') === src) {
return true;
}
}
}
for (var src in args) {
var isCss = /.+\.css$/i.test(src);
var isJs = /.+\.js$/i.test(src);
var tag = isCss ? 'link' : 'script';
if (!exists(tag, src)) {
if (isCss) {
if (document.createStyleSheet) {
document.createStyleSheet(src);
} else {
var link = document.createElement(tag);
link.type = 'text/css';
link.href = src;
head.appendChild(link);
}
} else if (isJs) {
var script = document.createElement(tag);
script.type = 'text/javascript';
script.src = src;
script.onload = args[src]();
head.appendChild(script);
}
}
}
}
继承人demo
答案 1 :(得分:2)
要在加载更新面板后在javascript端进行调用,请使用此标准代码。
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
function InitializeRequest(sender, args) {
}
function EndRequest(sender, args) {
// here you can load your scripts.
}
您可以在EndRequest中添加一个加载javascript的代码,但要注意只加载它们。如果jQuery有冲突,请尝试使用jQuery.noConflict()命令。 http://api.jquery.com/jQuery.noConflict/
答案 2 :(得分:2)
MSDN文档 在异步回发完成并且控件已返回到浏览器之后引发endRequest事件。您可以使用此事件向用户提供通知或记录错误。
参考 - endRequest
示例代码
<script type="text/javascript" language="javascript">
function EndRequestHandler(sender, args){
// here you can call the function provided by other user
}
<script
所以你必须在javascript中写下脚本加载函数......
答案 3 :(得分:1)
更新面板有一个onLoad事件:http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.onload.aspx。
<asp:UpdatePanel OnLoad="upOnload" ...
您可以在代码后面的updatePanel Onload事件中加载您的javascript,如下所示:
protected void upOnload(object sender, EventArgs e)
{
Page.Header.Controls.Add(new LiteralControl("<script type='text/javascript' src='" + Page.ResolveUrl("~/js/PortalJs/inettuts.js") + "'></script>"));
}