Category Archives: JavaScript

Dos and Don’ts in JavaScript

Best Practices:

  • Choose short but readable variable names.
  • Avoid global variables.
  • Use only one global object to encapsulate any global variables you really need.
  • Always use var to declare your variables.
  • Indent your code so it’s readable.
  • Use curly braces to define blocks of code.
  • Comment your code.
  • Always use semi-colons.
  • Be aware of where automatic semi-colon insertion happens.
  • Declare variables outside loops.
  • Reduce DOM operations.

JavaScript Window Location Options

/******************************************************************* 
* JavaScript Window Location Options
* URL: http://www.sample.com/sample.htm?query=accreditation
*******************************************************************/
window.location.search.substr(7); //'accreditation'
window.location.href.slice(window.location.href.indexOf('?') + 7).split('&'); //'accreditation'
(window.location.href.indexOf('query=') > -1); //true
(window.location.href.indexOf('jumpTo=') > -1); //false

Crawl Metatags with Nutch 1.7

In regards to the Stackoverflow recommendation on enabling the metatag plugin, I came across a roadblock when I had to merge this solution to my integration of AJAX Solr. Unfortunately, taking the recommendation at face value caused a JavaScript error of undefined when accessing the the meta tag key/value pair from the JSON object. Granted the recommendation chained metatag.description together, it interpreted metatag to be an object that did not exist.

Reviewing the key/value structure of JSON, I came across this discussion on Parsing JSON with hyphenated key names, I thought the same would hold true for mine. That said, I’ve augmented the Stackoverflow suggestion slightly to leverage underscores versus dot syntax and came up with the following:


/* For schema.xml on Nutch and Solr */
<field name="metatag_description" type="text_general" stored="true" indexed="true"/>
<field name="metatag_keywords" type="text_general" stored="true" indexed="true"/>

/* For solrindex-mapping.xml on Nutch */
<field dest="metatag_description" source="metatag.serptitle"/>
<field dest="metatag_keywords" source="metatag.serpdescription"/>

This was implemented on Nutch 1.7 on a Solr 4.5.0 instance.

Please refer to the following for context:

  1. Extracting HTML meta tags in Nutch 2.x and having Solr 4 index it
  2. Parsing JSON with hyphenated key names
  3. Nutch – Parse Metatags

Dynamically wrap specific HTML elements with jQuery

Constructs of my HTML and selectors are pertinent to my project only. HTML is assumed to have an initial div block with an unordered list as its child written natively to the index file.


//Published unordered list
var pubList = $('div.entrysingle.hidden ul');

//Check if unordered list is visible
if (pubList.length > 0) {

    var boxItOptHdrs = $('div.entrysingle.hidden ul .selectboxit-optgroup-header');
    var split_at = boxItOptHdrs;
    
    $(split_at).each(function() {
      $(this).add($(this).nextUntil(split_at)).wrapAll('
'); }); }

Check html element for inline CSS


/**
 *	Check all div elements for inline CSS display block.
 *	Should output 'Do stuff.' if display block is true.
 *	Requires jQuery to leverage: $ alias and .css() method
 */
if (($('div').css('display') == 'block')) {
	console.log('Do stuff.');
}

/**
 *	Select div element(s) with inline CSS display block.
 *	Should return div element(s) if executed in dev console.
 *	Requires jQuery to leverage: $ alias
 */
$('div[style="display: block;"]'); 

Thanks to: Stackoverflow and jsfiddle