(function (window, undefined) { // })(window);
window
and undefined
, which is done so that instead of the reusable global variables window
and undefined
, the local variables window
and undefined
are used in the body of the function, which are easily compressed using javascript minifiers.window
. The second parameter automatically takes the required value undefined
, without being passed to the function. // id : theonlypageAjaxLoaderGif var image = window.document.getElementById('theonlypageAjaxLoaderGif'); // image.parentNode.removeChild(image);
// div var veil = window.document.createElement('div'); // id veil.id = 'theonlypageContainer'; // , , … // … // … // window.document.body.appendChild(veil);
id
on a foreign web page. For this id
you can use the name of the web service. In our case, it is theonlypageContainer
.id
, then when reloading, you can implement a bookmarklet shutdown mechanism: var veil = window.document.getElementById('theonlypageContainer'); if(veil){ // // veil.parentNode.removeChild(veil); // return; }
div
will, for example, have completely unnecessary indents, and our iframe
inside it, for example, completely inappropriate shadows. // CSS var ResetCSS = "animation:none;animation-delay:0;animation-direction:normal;animation-duration:0;animation-fill-mode:none;animation-iteration-count:1;animation-name:none;animation-play-state:running;animation-timing-function:ease;backface-visibility:visible;background:0;background-attachment:scroll;background-clip:border-box;background-color:transparent;background-image:none;background-origin:padding-box;background-position:0 0;background-position-x:0;background-position-y:0;background-repeat:repeat;background-size:auto auto;border:0;border-style:none;border-width:medium;border-color:inherit;border-bottom:0;border-bottom-color:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:none;border-bottom-width:medium;border-collapse:separate;border-image:none;border-left:0;border-left-color:inherit;border-left-style:none;border-left-width:medium;border-radius:0;border-right:0;border-right-color:inherit;border-right-style:none;border-right-width:medium;border-spacing:0;border-top:0;border-top-color:inherit;border-top-left-radius:0;border-top-right-radius:0;border-top-style:none;border-top-width:medium;bottom:auto;box-shadow:none;box-sizing:content-box;caption-side:top;clear:none;clip:auto;color:inherit;columns:auto;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-rule-color:currentColor;column-rule-style:none;column-rule-width:none;column-span:1;column-width:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:inline;empty-cells:show;float:none;font:normal;font-family:inherit;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;height:auto;hyphens:none;left:auto;letter-spacing:normal;line-height:normal;list-style:none;list-style-image:none;list-style-position:outside;list-style-type:disc;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:0;outline:0;outline-color:invert;outline-style:none;outline-width:medium;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;position:static;right:auto;tab-size:8;table-layout:auto;text-align:inherit;text-align-last:auto;text-decoration:none;text-decoration-color:inherit;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-shadow:none;text-transform:none;top:auto;transform:none;transform-style:flat;transition:none;transition-delay:0s;transition-duration:0s;transition-property:none;transition-timing-function:ease;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:0;width:auto;word-spacing:normal;z-index:auto;"; // , … // … CSS … // … CSS veil.style.cssText = ResetCSS + 'position:absolute ;background-color:rgba(0,0,0,.2); cursor:pointer; ';
// jQuery var v = "1.11.1"; if (window.jQuery===undefined||window.jQuery.fn.jquery<v){ // jQuery jQuery // // var script=document.createElement('script'); // script.src="https://ajax.googleapis.com/ajax/libs/jquery/"+v+"/jquery.min.js"; script.async=true; // var entry=document.getElementsByTagName('script')[0]; entry.parentNode.insertBefore(script,entry); script.onload=script.onreadystatechange=function(){ var readyState=script.readyState; if (!readyState||/complete|loaded/.test(script.readyState)){ // // main(); // ... // ... script.onload = null; script.onreadystatechange = null; } }; }else{ main(); } var main=function(){ // }
http://
then errors will occur when working on the current page, the address protocol of which is: https://
. The reason for this is: restrictions imposed on mixed active content ( mixed active content ), which prohibit downloading code from unprotected addresses into a document protected by TLS (SSL). There are 2 ways to ensure that the javascript code always loads normally:https://
protocol//
notation, for example:script.src='//ajax.googleapis.com/ajax/libs/jquery/v.1.11.1/jquery.min.js'
http://
or https://
, the corresponding address will be used:ajax.googleapis.com/ajax/libs/jquery/v.1.11.1/jquery.min.js
ajax.googleapis.com/ajax/libs/jquery/v.1.11.1/jquery.min.js
$
abbreviation of the jQuery
global variable, since the global variable $
likely to be already used in the scripts of the current document, not as an alias for jQuery
, but like another global variable, for example from the library Prototype.JS . Therefore, we use only jQuery
, without abbreviations.Source: https://habr.com/ru/post/236315/
All Articles