URLs can occur in various portions of JavaScript code. The Rewriter cannot directly parse the JavaScript code and determine the URL portion. A special set of rules needs to be written to help the JavaScript processor translate the URL.
JavaScript elements that contain URLs are classified as follows:
JavaScript variables are again classified into five categories:
JavaScript URL Variables
JavaScript EXPRESSION Variables
JavaScript DHTML Variables
JavaScript DJS (Dynamic JavaScript) Variables
JavaScript System Variables
URL variables have a URL string on the right hand side. The default ruleset rewrites the following JavaScript URL variables:
imgsrc
location.href
_fr.location
mf.location
parent.location
self.location
The syntax of URL variables in JavaScript content rules is:
<Variable type="URL">variable_name</Variable> |
where variable_name is the name of the variable to be rewritten.
EXPRESSION variables have an expression on the right hand side. The result of this expression is a URL. The Rewriter appends a JavaScript function for converting the expression to the HTML page as it cannot evaluate such expressions. This function takes the expression as a parameter and evaluates it at the client browser.
The default ruleset rewrites the location JavaScript EXPRESSION variable.
The syntax of EXPRESSION variables in JavaScript content rules is:
<Variable type="EXPRESSION">variable_exp</Variable> |
where variable_exp is the expression variable.
DHTML variables are JavaScript variables that hold HTML content. The default ruleset rewrites the following JavaScript DHTML variables:
document.write
document.writeln
The syntax of DHTML variables in JavaScript content is:
<Variable type="DHTML">variable</Variable> |
where variable is the DHTML variable.
DJS (Dynamic JavaScript) variables are JavaScript variables that hold JavaScript content.
The syntax of DJS variables in JavaScript content is:
<Variable type="DJS">variable</Variable> |
where variable is the DJS variable.
The JavaScript code contained in the variable needs another rule to translate it.
System variables are variables that are not declared by the user, but that are available as a part of the JavaScript standard.
The default ruleset rewrites the window.location.pathname JavaScript system variable.
The syntax of system variables in JavaScript content is:
<Variable type="SYSTEM">variable</Variable> |
where variable is the system variable.
Function parameters are classified into four categories:
JavaScript URL Parameters
JavaScript EXPRESSION Parameters
JavaScript DHTML Parameters
JavaScript DJS Parameters
URL parameters are string parameters that directly contain the URL.
The default ruleset rewrites the following JavaScript URL parameters:
openURL
openAppURL
openNewWindow
parent.openNewWindo
window.open
The syntax for URL parameters is:
<Function type = "URL" name = "function" [paramPatterns="y,y,"] /> |
where function is the name of the function to be evaluated and y indicates the position of the parameter(s) that need to be rewritten. Parameter positions are delimited by commas. For example, in the syntax line the first and second parameters need to be rewritten, but the third parameter should not be rewritten.
EXPRESSION parameters are variables within a function that result in a URL when they are evaluated. The syntax for EXPRESSION parameters is
<Function type = "EXPRESSION" name = "function" [paramPatterns="y,y,"] /> |
where function is the name of the function to be evaluated and y indicates the position of the parameter(s) that need to be rewritten. Parameter positions are delimited by commas. For example, in the syntax line the first and second parameters need to be rewritten, but the third parameter should not be rewritten.
DHTML parameters are native JavaScript methods that generate an HTML page dynamically. For example, the document.write() method falls under this category.
The default ruleset rewrites the following JavaScript DHTML parameters:
document.write
document.writeln
The syntax for DHTML parameters is:
<Function type = "DHTML" name = "function" [paramPatterns="y,y,"] /> |
where function is the name of the function to be evaluated and y indicates the position of the parameter(s) that need to be rewritten. Parameter positions are delimited by commas. For example, in the syntax line the first and second parameters need to be rewritten, but not the third parameter should not be rewritten.
Dynamic JavaScript (DJS) parameters such as Cascading Style Sheets (CSS) in HTML are also translated. There are no rules defined for this translation as the URL appears only in the url() function of the CSS. The syntax for DJS parameters is:
<Function type = "DJS" name = "function" [paramPatterns="y,y,"] /> |
where function is the name of the function to be evaluated and y indicates the position of the parameter(s) that need to be rewritten. Parameter positions are delimited by commas. For example, in the syntax line the first and second parameters need to be rewritten, but not the third parameter should not be rewritten.