我正在使用<script>内部执行外部脚本<head>.
现在,由于脚本在页面加载之前执行,我无法访问<body>其中的内容.在文档被"加载"(HTML完全下载并在RAM中)后,我想执行一些JavaScript.我的脚本执行时是否有任何可以挂钩的事件,这些事件会在页面加载时触发?
对于所有主流浏览器(IE除外),onload由于后退按钮操作,页面加载时不会触发JavaScript 事件 - 它仅在首次加载页面时触发.
有人能指出我解决这个问题的一些示例跨浏览器代码(Firefox,Opera,Safari,IE,...)吗?我很熟悉Firefox的pageshow活动,但不幸的是Opera和Safari都没有实现这一点.
我正在建立一个我用divs 发布的网站.当我将页面滚动到位置X后刷新页面,然后页面加载滚动位置为X.
如何强制页面在页面刷新时滚动到顶部?
我能想到的是一些JS或jQuery作为onLoad()页面的功能运行来设置页面滚动到顶部.但我不知道我怎么能这样做.
一个更好的选择是,如果有一些属性或某些东西使页面加载其默认的滚动位置(即在顶部),这将有点像页面加载,而不是页面刷新.
它们的安全性是否相等?我被告知使用
<?=$function_here?>
Run Code Online (Sandbox Code Playgroud)
不太安全,它减慢了页面加载时间.我严格偏向于使用echo.
有什么优点/缺点?
所有 Page_Load事件完成后是否会触发事件?
我怎么能有一个以上
Page_Load?
当您有用户控件时.
在我的页面可以渲染之前,我需要我的页面(以及所有嵌入式控件)通过完成他们的Page_Load事件来初始化自己.
当然,问题是如果我把代码放在我的页面Page_Load处理程序中:
MyPage.aspx
--> Page_Load
---> DoSomethingWithUserControl()
UserControl1.ascx
--> Page_Load
---> initialize ourselves now that viewstate has been restored
Run Code Online (Sandbox Code Playgroud)
然后我开始UserControl1在准备好之前访问我的控件.
我需要一种方法来在所有Page_Load事件被触发后运行代码,但在任何回发事件(例如Click事件)被触发之前:
MyPage.aspx
--> Page_Load
UserControl1.ascx
--> Page_Load
---> initialize ourselves now that viewstate has been restored
MyPage.aspx
--> Page_AfterLoad
---> DoSomethingWithUserControl()
Run Code Online (Sandbox Code Playgroud)
查看MSDN中的页面生命周期,看起来在完成所有Page_Loads 后无法引发事件:

有没有一种方法后,引发后,所有Page_Loads已经完成?
这个问题与哪些浏览器支持<script async ="async"/>相关?.
我最近看过几个脚本做的事情是这样的:
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'http://www.example.com/script.js';
document.getElementsByTagName('head')[0].appendChild(s);
Run Code Online (Sandbox Code Playgroud)
这是向DOM动态添加脚本的常用方法,Steve Souders的书" Even Faster Web Sites "中的IIRC 提示所有现代浏览器异步加载脚本(即不阻止页面呈现或下载后续资产) .
如果我是正确的,该s.async = true声明是否有用?即使对于支持该属性的浏览器,它也不是多余的,因为动态附加脚本应该已经触发异步下载吗?
我正在一个包含大量mp3和图像的网站上工作,我想在所有内容加载时显示加载gif.
我不知道如何实现这一点,但我确实有我想要使用的动画GIF.
有什么建议?
我有一个变量,我从数据库中得到我想在html之间的aspx页面输出这个变量.我试图将其公开,但它显示了一些错误,如何在其aspx页面中使用页面加载函数中的变量集?
这是小提琴:http: //jsfiddle.net/D5h7H/7/
它呈现以下内容:
<div ng-repeat="group in Model.Groups">
<span>{{group.Name}}</span>
<div ng-repeat="filter in group.Filters">
<input type="checkbox" ng-model="filter.enabled">{{filter.Name}}
<select ng-disabled="!filter.enabled">
<option ng-repeat="value in filter.Values">{{value}}</option>
</select>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
它是从服务器加载到json中然后呈现给用户的过滤器列表(在一个例子中,json就是在Fiddle中生成的).目前有6组30个过滤器,每个过滤器有15个选项元素.
在Firefox中,现在需要大约2秒来重绘UI.
对于角度js,这个时间还可以吗?有没有什么我做错了导致2秒.渲染(因为2000元素对我来说看起来不是一个大数字,但2秒.肯定是大的)?
我正在弄清楚为什么这个简单的脚本不起作用:
jQuery.noConflict();
jQuery(document).ready(function() {
jQuery('.next_button a').trigger('click');
});
Run Code Online (Sandbox Code Playgroud)
noConflict 是必要的,因为我也在这个页面加载原型/ scriptaculous.
如果我.trigger('click')用另一个函数替换(es:.css(...)这个效果很好.只有触发似乎会破坏.
pageload ×10
javascript ×6
html ×3
asp.net ×2
jquery ×2
angularjs ×1
asynchronous ×1
css ×1
dom-events ×1
echo ×1
function ×1
loading ×1
ng-bind ×1
page-refresh ×1
performance ×1
php ×1
triggers ×1
variables ×1