How to parse request parameters with JavaScript
JavaScript posted about 1 month ago by christian
Code:
1 var Request = { 2 parameter: function(name) { 3 return this.parameters()[name]; 4 }, 5 6 parameters: function() { 7 var result = {}; 8 var url = window.location.href; 9 var parameters = url.slice(url.indexOf('?') + 1).split('&'); 10 11 for(var i = 0; i < parameters.length; i++) { 12 var parameter = parameters[i].split('='); 13 result[parameter[0]] = parameter[1]; 14 } 15 return result; 16 } 17 }
Examples:
1 // ?query=test 2 var query = Request.parameter('query'); 3 4 var parameters = Request.parameters(); 5 // This works too 6 var query = parameters.query; 7 // And this 8 var query = parameters['query'];
How to warn a user when he's leaving and there's unsaved data
JavaScript posted 3 months ago by christian
1 function confirmExit(enabled) { 2 window.onbeforeunload = (enabled) ? onUnloadMessage : null; 3 } 4 5 function onUnloadMessage() { 6 return "You're about to leave without saving!"; 7 } 8 9 // Enable 10 $('.input').change(function() { 11 confirmExit(true); 12 });
How to make sure new is called on a JavaScript object
JavaScript posted 4 months ago by christian
1 function User(first, last){ 2 if ( !(this instanceof arguments.callee) ) 3 return new User(first, last); 4 5 this.name = first + " " + last; 6 } 7 8 // Prevents issues with 9 var user = User("John", name); 10 // 11 var user = new User("John", name);
Tagged javascript, pattern
A Mozilla Jetpack extension template
JavaScript posted 4 months ago by christian
Jetpack extension:
1 jetpack.future.import('menu'); 2 jetpack.future.import('selection'); 3 4 jetpack.menu.context.page.on('img').add(function(target) ({ 5 label: "Post to flickr.com", 6 icon: "http://xxx/icon.png", 7 command: function() { 8 var url = "http://flickr.com/api?"; 9 10 var selectedText = jetpack.selection.text || ''; 11 var sourceImage = target.node.src; 12 var sourcePage = jetpack.tabs.focused.url; 13 14 url += encodeURI('image') + '=' + encodeURI(sourceImage); 15 url += '&' + encodeURI('description') + '=' + encodeURI(selectedText.substr(0, 200)); 16 17 jetpack.tabs.open(url).focus(); 18 } 19 }));
Installation page:
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 2 <html lang="en"> 3 <head> 4 <title>The Jetpack Feature</title> 5 <link rel="jetpack" href="/javascripts/jetpack-extension.js" name="com extension" /> 6 </head> 7 <body> 8 </body> 9 </html>
How to keep the scope when calling setTimeout/setInterval in JavaScript
JavaScript posted 4 months ago by christian
1 // Don't loose our scope 2 var self = this; 3 // Closures to the rescue 4 setTimeout(function() { self.hide() }, 500);