Der Code sieht zwar nach viel aus ist aber einfach und schnell nachzuvollziehen.
Der erste Code funktioniert sehr gut.
Der zweite Code funktioniert nur eingeschränkt und zwar nur wenn ich die alerts
"alert('in jQueryLoadTest 3/6')" und "alert('in jQueryLoadTest 5/6');" drin lasse.
Habe ich keinen alert Aufruf drin so erhalte ich bei Firefox in der Fehlerkonsole die Fehlermeldung: "this.bootstrapJQueryUi is not a function".
Habe ich nur "alert('in jQueryLoadTest 3/6')" drin so erhalte ich die
Fehlermeldung: "this.createUI is not a function".
Woran liegt das was muss ich tun damit der zweite Code auch ohne den beiden alerts funktioniert?
minBookmarklet.js (Variante 1 funktioniert)
minBookmarklet.js (Variante 2 funktioniert NICHT)
BookmarkletCode
Der erste Code funktioniert sehr gut.
Der zweite Code funktioniert nur eingeschränkt und zwar nur wenn ich die alerts
"alert('in jQueryLoadTest 3/6')" und "alert('in jQueryLoadTest 5/6');" drin lasse.
Habe ich keinen alert Aufruf drin so erhalte ich bei Firefox in der Fehlerkonsole die Fehlermeldung: "this.bootstrapJQueryUi is not a function".
Habe ich nur "alert('in jQueryLoadTest 3/6')" drin so erhalte ich die
Fehlermeldung: "this.createUI is not a function".
Woran liegt das was muss ich tun damit der zweite Code auch ohne den beiden alerts funktioniert?
minBookmarklet.js (Variante 1 funktioniert)
HTML:
//"class" MinBook
function MinBook()
{
this.init();
}
MinBook.prototype.htmlStr = '';
MinBook.prototype.textMarked = '';
MinBook.prototype.picturesMarked = '';
MinBook.prototype.jQueryScriptSrc = '../js/jquery-1.5.1.min.js';
MinBook.prototype.jQueryUIScriptSrc = '../js/jquery-ui-1.8.10.custom.min.js';
MinBook.prototype.jQueryUICSSLinkHref = ../jquery-ui-1.8.10.custom.css';
/*--------------------------------------------------------------------------------------------------------------
Method: init()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.init = function(){
this.bootstrapJQuery();
}
/*--------------------------------------------------------------------------------------------------------------
Method: bootstrapJQuery()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.bootstrapJQuery = function(){
this.jQueryLoadTest();
}
/*--------------------------------------------------------------------------------------------------------------
Method: jQueryLoadTest()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.jQueryLoadTest = function(){
this.bootstrapJQueryUI();
}
/*--------------------------------------------------------------------------------------------------------------
Method: bootstrapJQueryUI()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.bootstrapJQueryUI = function(){
this.jQueryUILoadTest();
}
/*--------------------------------------------------------------------------------------------------------------
Method: jQueryLoadTest()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.jQueryUILoadTest = function(){
this.createUI();
}
/*--------------------------------------------------------------------------------------------------------------
Method: createUI()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.createUI = function(){
alert('in createUI 6/6');
}
/*********************************************************************************************************************************************
* Invoke *
*********************************************************************************************************************************************/
var myMinBook = new MinBook();
minBookmarklet.js (Variante 2 funktioniert NICHT)
HTML:
//"class" MinBook
function MinBook()
{
this.init();
}
MinBook.prototype.htmlStr = '';
MinBook.prototype.textMarked = '';
MinBook.prototype.picturesMarked = '';
MinBook.prototype.jQueryScriptSrc = '../js/jquery-1.5.1.min.js';
MinBook.prototype.jQueryUIScriptSrc = '..l/js/jquery-ui-1.8.10.custom.min.js';
MinBook.prototype.jQueryUICSSLinkHref = ../jquery-ui-1.8.10.custom.css';
/*--------------------------------------------------------------------------------------------------------------
Method: init()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.init = function(){
//alert('in init 1/6');
this.bootstrapJQuery();
}
/*--------------------------------------------------------------------------------------------------------------
Method: bootstrapJQuery()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.bootstrapJQuery = function(){
//alert('in bootstrapJQuery 2/6');
if( (typeof(jQuery) == 'undefined')|| (jQuery.fn.jquery != '1.5.1') )
{
//jQuery javascript
var jQueryScript = document.createElement("script");
jQueryScript.type = "text/javascript";
jQueryScript.src= this.jQueryScriptSrc;
document.getElementsByTagName("head")[0].appendChild(jQueryScript);
}
this.jQueryLoadTest();
}
/*--------------------------------------------------------------------------------------------------------------
Method: jQueryLoadTest()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.jQueryLoadTest = function(){
alert('in jQueryLoadTest 3/6');
if(typeof(jQuery) == 'undefined')
window.setTimeout(this.jQueryLoadTest,100);
else this.bootstrapJQueryUI();
}
/*--------------------------------------------------------------------------------------------------------------
Method: bootstrapJQueryUI()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.bootstrapJQueryUI = function(){
//alert('in bootstrapJQueryUI 4/6');
//jQuery UI javascript
var jQueryUIScript = document.createElement("script");
jQueryUIScript.type = "text/javascript";
jQueryUIScript.src= this.jQueryUIScriptSrc;
document.getElementsByTagName("head")[0].appendChild(jQueryUIScript);
//jQuery-ui stylesheet
var jQueryUICSSLink = document.createElement("link");
jQueryUICSSLink.type = "text/css";
jQueryUICSSLink.rel = "stylesheet";
jQueryUICSSLink.href = this.jQueryUICSSLinkHref;
document.getElementsByTagName("head")[0].appendChild(jQueryUICSSLink);
this.jQueryUILoadTest();
}
/*--------------------------------------------------------------------------------------------------------------
Method: jQueryLoadTest()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.jQueryUILoadTest = function(){
alert('in jQueryUILoadTest 5/6');
if(typeof(jQuery.ui) == 'undefined')
window.setTimeout(this.jQueryUILoadTest,100);
else this.createUI();
}
/*--------------------------------------------------------------------------------------------------------------
Method: createUI()
---------------------------------------------------------------------------------------------------------------*/
MinBook.prototype.createUI = function(){
//alert('in createUI 6/6');
alert("jQuery.ui: " + jQuery.ui);
alert("jQuery.ui.version: " + jQuery.ui.version);
alert("jQuery.fn.jquery: " + jQuery.fn.jquery);
jQuery('body').append('<div id="Mydiv"></div>');
jQuery(document).ready(function(){
jQuery('#Mydiv').dialog({
title: 'My Dialog',
position: [10,10],
resizable: false,
width: 515,
close: function()
{
window.location.reload();
}
});
});
}
/*********************************************************************************************************************************************
* Invoke *
*********************************************************************************************************************************************/
var myMinBook = new MinBook();
BookmarkletCode
HTML:
javascript:
(
function()
{
var x =document.createElement('SCRIPT');
x.type='text/javascript';
x.src='../minBookmarklet.js';
document.getElementsByTagName('head')[0].appendChild(x);
}
)();