Skip to content

Commit 7ac06e2

Browse files
committed
Added sample to printElement (still in draft), and minified version of the late loader
1 parent d54578f commit 7ac06e2

File tree

7 files changed

+106
-6
lines changed

7 files changed

+106
-6
lines changed

JQuery.LateLoader/jQuery.LateLoader.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
/*
2+
* jQuery Late Loader
3+
*
4+
* Copyright (c) 2009 Erik Zaadi
5+
*
6+
* Plugin home page : http://plugins.jquery.com/project/TODO!
7+
* Wiki : http://wiki.github.com/erikzaadi/jQueryPlugins/jquerylateloader
8+
*
9+
* Dual licensed under the MIT and GPL licenses:
10+
* http://www.opensource.org/licenses/mit-license.php
11+
* http://www.gnu.org/licenses/gpl.html
12+
*/
113
; (function($) {
214
$.LateLoader = {
315
LoadScriptOrCSS: _LoadScriptOrCSS,
@@ -121,8 +133,9 @@
121133
if (!$createdLink.length) {
122134
success = false;
123135
}
124-
if ($.browser.msie) {
125-
success = $createdLink.get(0).readyState == "complete";
136+
if ($createdLink.get(0).readyState) {
137+
var created = $createdLink.get(0).readyState;
138+
success = created == "complete" || created == "loaded";
126139
} else {
127140
if (false /*Need to find a non IE solution to validate if the external stylesheet has loaded*/) {
128141
success = false;
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* jQuery Late Loader
3+
*
4+
* Copyright (c) 2009 Erik Zaadi
5+
*
6+
* Plugin home page : http://plugins.jquery.com/project/TODO!
7+
* Wiki : http://wiki.github.com/erikzaadi/jQueryPlugins/jquerylateloader
8+
*
9+
* Dual licensed under the MIT and GPL licenses:
10+
* http://www.opensource.org/licenses/mit-license.php
11+
* http://www.gnu.org/licenses/gpl.html
12+
*/
13+
;(function($){$.LateLoader={LoadScriptOrCSS:_LoadScriptOrCSS,IsScriptOrCSSLoaded:_IsScriptOrCSSLoaded,GetLoadedScriptOrCSSs:_GetScriptOrCSSArray,GetLoadedScriptOrCSSsByType:_GetScriptOrCSSArrayByType,PluginDefaults:{ArrayDataKey:"LateLoaderDataKey",ElementToAttachDataTo:"body",RemoteTimeout:1500},Defaults:{URL:null,Type:"js",LoadedCallBackFunction:null,ErrorCallBackFunction:null}};
14+
function _LoadScriptOrCSS(OptionsOrURL){var options;if(typeof(OptionsOrURL)=="string"){options=$.extend({},$.LateLoader.Defaults,{URL:OptionsOrURL});
15+
}else{options=$.extend({},$.LateLoader.Defaults,OptionsOrURL);}if(_IsScriptOrCSSLoaded(options.URL,options.Type)){_CallFunctionIfAvailable(options.LoadedCallBackFunction,options.URL);
16+
return;}if(options.Type=="js"){if(_URLIsRemote(options.URL)){setTimeout(function(){if(!_IsScriptOrCSSLoaded(options.URL,options.Type)){_Error(options);
17+
}},$.LateLoader.PluginDefaults.RemoteTimeout);}$.ajax({dataType:"script",url:options.URL,success:function(){_Success(options);
18+
},error:function(){_Error(options);},data:{}});}else{_AddCSSFile(options);}}function _IsScriptOrCSSLoaded(URL,Type){var ScriptOrCSSArray=_GetScriptOrCSSArray()||{};
19+
return(ScriptOrCSSArray[Type]&&($.inArray(URL,ScriptOrCSSArray[Type])!=-1))?true:false;
20+
}function _GetScriptOrCSSArray(){var ScriptOrCSSData=$($.LateLoader.PluginDefaults.ElementToAttachDataTo).data($.LateLoader.PluginDefaults.ArrayDataKey);
21+
var ScriptOrCSSArray=ScriptOrCSSData&&ScriptOrCSSData.ScriptOrCSSs?ScriptOrCSSData.ScriptOrCSSs:false;
22+
if(!ScriptOrCSSArray){return false;}else{return ScriptOrCSSArray;}}function _GetScriptOrCSSArrayByType(Type){var ScriptOrCSSArray=_GetScriptOrCSSArray()||false;
23+
if(!ScriptOrCSSArray){return false;}if(!ScriptOrCSSArray[Type]){return false;}return ScriptOrCSSArray[Type];
24+
}function _Error(options){_CallFunctionIfAvailable(options.ErrorCallBackFunction,"error loading "+options.Type+" - "+options.URL);
25+
}function _Success(options){_AddLoadedScriptOrCSSToArray(options);_CallFunctionIfAvailable(options.LoadedCallBackFunction,options.URL);
26+
}function _ValidateCSSFileLoaded(options){var $createdLink=$("link[href='"+options.URL+"']");
27+
var success=true;if(!$createdLink.length){success=false;}if($createdLink.get(0).readyState){var created=$createdLink.get(0).readyState;
28+
success=created=="complete"||created=="loaded";}else{if(false){success=false;}}if(success){_Success(options);
29+
}else{_Error(options);}}function _AddCSSFile(options){if(!_URLIsRemote(options.URL)){$.ajax({url:options.URL,dataType:"text",success:function(data){var randID=Math.round(Math.random()*321312);
30+
var $link=$("<style />").attr({rel:"stylesheet",type:"text/css",id:randID.toString()});
31+
$link.appendTo("head");setTimeout(function(){var created=$("#"+randID.toString());
32+
if($.browser.msie){created.get(0).styleSheet.cssText=data;}else{created.text(data);
33+
}_Success(options);},15);},error:function(){_Error(options);},data:{}});}else{$("<link />").ready(function(){setTimeout(function(){_ValidateCSSFileLoaded(options);
34+
},15);}).attr({rel:"stylesheet",type:"text/css",href:options.URL}).appendTo("head");
35+
}}function _AddLoadedScriptOrCSSToArray(options){var ScriptOrCSSArray=_GetScriptOrCSSArray()||{};
36+
if(!ScriptOrCSSArray[options.Type]){ScriptOrCSSArray[options.Type]=new Array();}ScriptOrCSSArray[options.Type].push(options.URL);
37+
$($.LateLoader.PluginDefaults.ElementToAttachDataTo).data($.LateLoader.PluginDefaults.ArrayDataKey,{ScriptOrCSSs:ScriptOrCSSArray});
38+
}function _CallFunctionIfAvailable(method,param){if(method&&$.isFunction(method)){method(param);
39+
}}function _URLIsRemote(url){return url.indexOf("http")>-1&&(url.indexOf("http://"+window.location.host)==-1&&url.indexOf("https://"+window.location.host)==-1);
40+
}})(jQuery);
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
.Fuchsia
2+
{
3+
background-color: Fuchsia !important;
4+
}
5+
6+
hr
7+
{
8+
color: #f00;
9+
background-color: #f00;
10+
height: 5px;
11+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<html>
2+
<head>
3+
<title>jQuery Print Element Tester</title>
4+
5+
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
6+
7+
<script type="text/javascript" src="../jquery.printElement.min.js"></script>
8+
9+
<script type="text/javascript">
10+
$(document).ready(function() {
11+
$("#simplePrint").click(function(){
12+
$('#toPrint').printElement();
13+
});
14+
});
15+
</script>
16+
17+
</head>
18+
<body>
19+
<input type="button" value="$('#toPrint').printElement()" id="simplePrint" />
20+
<hr />
21+
<div id="toPrint"> hmm , need some more printable samples here</div>
22+
</body>
23+
</html>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
.Fuchsia
2+
{
3+
background-color: Fuchsia !important;
4+
}
5+
6+
hr
7+
{
8+
color: #f00;
9+
background-color: #f00;
10+
height: 5px;
11+
}

jQuery.printElement/jquery.printElement.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
* Inspired by PrintArea (http://plugins.jquery.com/project/PrintArea) and
77
* http://stackoverflow.com/questions/472951/how-do-i-print-an-iframe-from-javascript-in-safari-chrome
88
*
9-
* $Id: jquery.printElement.js PENDING ID ErikZ $
10-
*
9+
* Plugin home page : http://plugins.jquery.com/project/printElement
10+
* Wiki : http://wiki.github.com/erikzaadi/jQueryPlugins/jqueryprintelement
11+
*
1112
* Dual licensed under the MIT and GPL licenses:
1213
* http://www.opensource.org/licenses/mit-license.php
1314
* http://www.gnu.org/licenses/gpl.html

jQuery.printElement/jquery.printElement.min.js

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)