Use "DOM ready" event instead of window.onload
parent
811d30acbd
commit
a7b98817a7
|
@ -3,7 +3,7 @@
|
|||
* Author(s): Vitaliy Filippov <vitalif@mail.ru>
|
||||
*/
|
||||
|
||||
addListener(window, 'load', initControlledFields);
|
||||
onDomReady(initControlledFields);
|
||||
|
||||
function initControlledFields()
|
||||
{
|
||||
|
|
|
@ -358,7 +358,7 @@ function search_filter_click(e)
|
|||
this.href = new_href;
|
||||
}
|
||||
|
||||
addListener(window, 'load', function()
|
||||
onDomReady(function()
|
||||
{
|
||||
if (document.getElementById('form_bug_edit'))
|
||||
{
|
||||
|
|
|
@ -169,7 +169,7 @@ function validateEntryForm(theform)
|
|||
return true;
|
||||
}
|
||||
|
||||
addListener(window, 'load', function()
|
||||
onDomReady(function()
|
||||
{
|
||||
var f = document.getElementById('bug_status');
|
||||
addListener(f, 'change', bug_status_change);
|
||||
|
|
21
js/field.js
21
js/field.js
|
@ -25,7 +25,7 @@ function hideEditableField( container, input, action, field_id, original_value )
|
|||
addClass(input, 'bz_default_hidden');
|
||||
addListener(action, 'click', function(ev) { return showEditableField(ev, [ container, input ]); });
|
||||
if (field_id != "")
|
||||
addListener(window, 'load', function(ev) {
|
||||
onDomReady(function(ev) {
|
||||
return checkForChangedFieldValues(ev, [ container, input, field_id, original_value ])
|
||||
});
|
||||
}
|
||||
|
@ -114,9 +114,7 @@ function hideAliasAndSummary(short_desc_value, alias_value)
|
|||
var bz_alias_check_array = [
|
||||
'summary_alias_container', 'summary_alias_input', 'alias', alias_value
|
||||
];
|
||||
addListener(window, 'load',
|
||||
function(ev) { return checkForChangedFieldValues(ev, bz_alias_check_array) }
|
||||
);
|
||||
onDomReady(function(ev) { return checkForChangedFieldValues(ev, bz_alias_check_array) });
|
||||
}
|
||||
|
||||
function showPeopleOnChange(field_id_list)
|
||||
|
@ -145,13 +143,16 @@ function assignToDefaultOnChange(field_id_list)
|
|||
function initDefaultCheckbox(field_id)
|
||||
{
|
||||
addListener('set_default_'+field_id, 'change',
|
||||
function(ev) { return boldOnChange(ev, 'set_default_'+field_id) });
|
||||
addListener(window, 'load',
|
||||
function(ev) { return checkForChangedFieldValues(ev, [
|
||||
function(ev) { return boldOnChange(ev, 'set_default_'+field_id) }
|
||||
);
|
||||
onDomReady(function(ev)
|
||||
{
|
||||
checkForChangedFieldValues(ev, [
|
||||
'bz_'+field_id+'_edit_container', 'bz_'+field_id+'_input',
|
||||
'set_default_'+field_id, '1' ]) });
|
||||
addListener(window, 'load',
|
||||
function(ev) { return boldOnChange(ev, 'set_default_'+field_id) });
|
||||
'set_default_'+field_id, '1' ]
|
||||
);
|
||||
boldOnChange(ev, 'set_default_'+field_id);
|
||||
});
|
||||
}
|
||||
|
||||
function showHideStatusItems(is_duplicate, initial_status)
|
||||
|
|
|
@ -82,4 +82,4 @@ function disableRequesteeFields()
|
|||
}
|
||||
}
|
||||
|
||||
addListener(window, "load", disableRequesteeFields);
|
||||
onDomReady(disableRequesteeFields);
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// Author(s): Vitaliy Filippov <vitalif@mail.ru>
|
||||
|
||||
// Requires global vars: queryform, checkwidths, userAutocomplete
|
||||
addListener(window, 'load', function()
|
||||
onDomReady(function()
|
||||
{
|
||||
document.forms[queryform].content.focus();
|
||||
if (document.getElementById('deadlinefrom'))
|
||||
|
|
|
@ -37,7 +37,7 @@ respecting this "list of active IDs".
|
|||
|
||||
*/
|
||||
|
||||
addListener(window, 'load', initQueryformFields);
|
||||
onDomReady(initQueryformFields);
|
||||
|
||||
function initQueryformFields()
|
||||
{
|
||||
|
|
87
js/util.js
87
js/util.js
|
@ -455,11 +455,86 @@ function AjaxLoader(url, callback)
|
|||
x.send(null);
|
||||
}
|
||||
|
||||
function existElement(el_id) {
|
||||
function existElement(el_id)
|
||||
{
|
||||
var el = document.getElementById(el_id);
|
||||
if (typeof (el) != undefined && typeof (el) != null && typeof (el) != 'undefined' && el !== null) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return (typeof (el) != undefined && typeof (el) != null && typeof (el) != 'undefined' && el !== null);
|
||||
}
|
||||
|
||||
window.onDomReady = (function()
|
||||
{
|
||||
var readyBound = false;
|
||||
var bindReady = function()
|
||||
{
|
||||
if (readyBound)
|
||||
return;
|
||||
readyBound = true;
|
||||
if (document.addEventListener)
|
||||
{
|
||||
document.addEventListener("DOMContentLoaded", function()
|
||||
{
|
||||
document.removeEventListener("DOMContentLoaded", arguments.callee, false);
|
||||
ready();
|
||||
}, false);
|
||||
}
|
||||
else if (document.attachEvent)
|
||||
{
|
||||
document.attachEvent("onreadystatechange", function()
|
||||
{
|
||||
if (document.readyState === "complete")
|
||||
{
|
||||
document.detachEvent( "onreadystatechange", arguments.callee );
|
||||
ready();
|
||||
}
|
||||
});
|
||||
if (document.documentElement.doScroll && window == window.top)
|
||||
{
|
||||
(function()
|
||||
{
|
||||
if (isReady)
|
||||
return;
|
||||
try
|
||||
{
|
||||
document.documentElement.doScroll("left");
|
||||
}
|
||||
catch(error)
|
||||
{
|
||||
setTimeout(arguments.callee, 0);
|
||||
return;
|
||||
}
|
||||
ready();
|
||||
})();
|
||||
}
|
||||
}
|
||||
if (window.addEventListener)
|
||||
window.addEventListener('load', ready, false);
|
||||
else if (window.attachEvent)
|
||||
window.attachEvent('onload', ready);
|
||||
else
|
||||
window.onload = ready;
|
||||
};
|
||||
var isReady = false;
|
||||
var readyList = [];
|
||||
var ready = function()
|
||||
{
|
||||
if (!isReady)
|
||||
{
|
||||
isReady = true;
|
||||
if (readyList)
|
||||
{
|
||||
var fn_temp = null;
|
||||
while (fn_temp = readyList.shift())
|
||||
fn_temp.call(document);
|
||||
readyList = null;
|
||||
}
|
||||
}
|
||||
};
|
||||
return function(fn) {
|
||||
bindReady();
|
||||
if (isReady)
|
||||
fn.call(document);
|
||||
else
|
||||
readyList.push(fn);
|
||||
return this;
|
||||
};
|
||||
})();
|
||||
|
|
|
@ -86,7 +86,7 @@
|
|||
"login" : "login",
|
||||
"warning" : "You must set the login and password before logging in."
|
||||
};
|
||||
addListener(window, 'load', function() {
|
||||
onDomReady(function() {
|
||||
init_mini_login_form('_[% qs_suffix %]');
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -319,15 +319,13 @@ You are currently not watching any users.
|
|||
</p>
|
||||
|
||||
<script type="text/javascript" language="JavaScript">
|
||||
addListener(window, 'load', function() {
|
||||
[%-# FIXME: remove hardcoded i18n message, also from js/field.js::userAutocomplete() %]
|
||||
new SimpleAutocomplete("new_watchedusers",
|
||||
function(h) { userAutocomplete(h, null); },
|
||||
{ multipleDelimiter: ',', emptyText: 'No users found' });
|
||||
new SimpleAutocomplete("new_watchers",
|
||||
function(h) { userAutocomplete(h, null); },
|
||||
{ multipleDelimiter: ',', emptyText: 'No users found' });
|
||||
});
|
||||
[%-# FIXME: remove hardcoded i18n message, also from js/field.js::userAutocomplete() %]
|
||||
new SimpleAutocomplete("new_watchedusers",
|
||||
function(h) { userAutocomplete(h, null); },
|
||||
{ multipleDelimiter: ',', emptyText: 'No users found' });
|
||||
new SimpleAutocomplete("new_watchers",
|
||||
function(h) { userAutocomplete(h, null); },
|
||||
{ multipleDelimiter: ',', emptyText: 'No users found' });
|
||||
</script>
|
||||
|
||||
<hr />
|
||||
|
|
|
@ -189,7 +189,7 @@ var close_status_array = [
|
|||
<td>
|
||||
<input id="keywords" name="keywords" size="60" value="[% default.keywords | html %]">
|
||||
<script type="text/javascript">
|
||||
addListener(window, 'load', addKeywordsAutocomplete);
|
||||
addKeywordsAutocomplete();
|
||||
</script>
|
||||
<div id="keywords_description_container"></div>
|
||||
</td>
|
||||
|
|
|
@ -537,7 +537,7 @@ document.changeform = document.[% cfname %];
|
|||
</td>
|
||||
[% PROCESS input inputname => "keywords" size => 40 colspan => 2 %]
|
||||
<script>
|
||||
addListener(window, 'load', addKeywordsAutocomplete);
|
||||
addKeywordsAutocomplete();
|
||||
</script>
|
||||
</tr>
|
||||
[% END %]
|
||||
|
@ -942,7 +942,7 @@ document.changeform = document.[% cfname %];
|
|||
<input name="deadline" id="deadline" value="[% bug.deadline %]"
|
||||
size="10" maxlength="10"><br />
|
||||
<script type="text/javascript">
|
||||
Calendar.set('deadline');
|
||||
Calendar.set('deadline');
|
||||
</script>
|
||||
<small>(YYYY-MM-DD)</small>
|
||||
</td>
|
||||
|
|
|
@ -29,11 +29,8 @@
|
|||
[% IF style %] style="[% style | html %]" [% END %]
|
||||
/>
|
||||
<script language="JavaScript">
|
||||
addListener(window, 'load', function() {
|
||||
[%-# FIXME: remove hardcoded i18n message, also from js/field.js::userAutocomplete() %]
|
||||
var emptyOptions = [% custom_userlist ? json(custom_userlist) : "null" %];
|
||||
new SimpleAutocomplete("[% id | js %]",
|
||||
function(h) { userAutocomplete(h, emptyOptions, [% Param('usemenuforusers') ? 1 : 0 %]); },
|
||||
{ emptyText: 'No users found'[% ', multipleDelimiter: ","' IF multiple %] });
|
||||
});
|
||||
[%-# FIXME: remove hardcoded i18n message, also from js/field.js::userAutocomplete() %]
|
||||
new SimpleAutocomplete("[% id | js %]",
|
||||
function(h) { userAutocomplete(h, [% custom_userlist ? json(custom_userlist) : "null" %], [% Param('usemenuforusers') ? 1 : 0 %]); },
|
||||
{ emptyText: 'No users found'[% ', multipleDelimiter: ","' IF multiple %] });
|
||||
</script>
|
||||
|
|
|
@ -211,9 +211,6 @@ document.write(' <input type="button" name="check_all" value="Check All" onclick
|
|||
[% IF use_keywords %]
|
||||
<tr>
|
||||
<th>
|
||||
<script type="text/javascript">
|
||||
addListener(window, 'load', addKeywordsAutocomplete);
|
||||
</script>
|
||||
<label for="keywords">
|
||||
<a href="describekeywords.cgi">Keywords</a>:
|
||||
</label>
|
||||
|
@ -225,6 +222,9 @@ document.write(' <input type="button" name="check_all" value="Check All" onclick
|
|||
<option value="delete">Delete these keywords</option>
|
||||
<option value="makeexact">Make the keywords be exactly this list</option>
|
||||
</select>
|
||||
<script type="text/javascript">
|
||||
addKeywordsAutocomplete();
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
[% END %]
|
||||
|
|
Loading…
Reference in New Issue