function fnSanitizeAttribs (tagName, attribs) {

			var sWarning;
			var attr,
				value,
				addTarget = tagName === "a";
			// add UI5 specific classes when appropriate
			var cssClass = this._renderingRules.ELEMENTS[tagName].cssClass || "";

			for (var i = 0; i < attribs.length; i += 2) {
				// attribs[i] is the name of the tag's attribute.
				// attribs[i+1] is its corresponding value.
				// (i.e. <span class="foo"> -> attribs[i] = "class" | attribs[i+1] = "foo")
				attr = attribs[i];
				value = attribs[i + 1];

				if (!this._renderingRules.ATTRIBS[attr] && !this._renderingRules.ATTRIBS[tagName + "::" + attr]) {
					sWarning = 'FormattedText: <' + tagName + '> with attribute [' + attr + '="' + value + '"] is not allowed';
					Log.warning(sWarning, this);
					// to remove the attribute by the sanitizer, set the value to null
					attribs[i + 1] = null;
					continue;
				}

				// sanitize hrefs
				if (attr == "href") { // a::href
					if (!URLListValidator.validate(value)) {
						Log.warning("FormattedText: incorrect href attribute:" + value, this);
						attribs[i + 1] = "#";
						addTarget = false;
					}
				}
				if (attr == "target") { // a::target already exists
					addTarget = false;
				}

				// add UI5 classes to the user defined
				if (cssClass && attr.toLowerCase() == "class") {
					attribs[i + 1] = cssClass + " " + value;
					cssClass = "";
				}
			}

			if (addTarget) {
				attribs.push("target");
				attribs.push("_blank");
			}

			// add UI5 classes, if not done before
			if (cssClass) {
				attribs.push("class");
				attribs.push(cssClass);
			}

			return attribs;
		}
/**
		 * Sanitizes attributes on an HTML tag.
		 *
		 * @param {string} tagName An HTML tag name in lower case
		 * @param {array} attribs An array of alternating names and values
		 * @return {array} The sanitized attributes as a list of alternating names and values. Value <code>null</code> removes the attribute.
		 * @private
		 */
Sanitizes attributes on an HTML tag.
@param {string} tagName An HTML tag name in lower case
@param {array} attribs An array of alternating names and values
@return {array} The sanitized attributes as a list of alternating names and values. Value null removes the attribute.
@private
Sanitizes attributes on an HTML tag . @param { string } tagName An HTML tag name in lower case @param { array } attribs An array of alternating names and values @return { array } The sanitized attributes as a list of alternating names and values . Value null removes the attribute . @private
function fnSanitizeAttribs (tagName, attribs) {
			var sWarning;
			var attr,
				value,
				addTarget = tagName === "a";
			var cssClass = this._renderingRules.ELEMENTS[tagName].cssClass || "";
			for (var i = 0; i < attribs.length; i += 2) {
				attr = attribs[i];
				value = attribs[i + 1];
				if (!this._renderingRules.ATTRIBS[attr] && !this._renderingRules.ATTRIBS[tagName + "::" + attr]) {
					sWarning = 'FormattedText: <' + tagName + '> with attribute [' + attr + '="' + value + '"] is not allowed';
					Log.warning(sWarning, this);
					attribs[i + 1] = null;
					continue;
				}
				if (attr == "href") { 
					if (!URLListValidator.validate(value)) {
						Log.warning("FormattedText: incorrect href attribute:" + value, this);
						attribs[i + 1] = "#";
						addTarget = false;
					}
				}
				if (attr == "target") { 
					addTarget = false;
				}
				if (cssClass && attr.toLowerCase() == "class") {
					attribs[i + 1] = cssClass + " " + value;
					cssClass = "";
				}
			}
			if (addTarget) {
				attribs.push("target");
				attribs.push("_blank");
			}
			if (cssClass) {
				attribs.push("class");
				attribs.push(cssClass);
			}
			return attribs;
		}
function fnSanitizeAttribs ( tagName , attribs ) { var sWarning ; var attr , value , addTarget = tagName === "a" ; var cssClass = this . _renderingRules . ELEMENTS [ tagName ] . cssClass || "" ; for ( var i = 0 ; i < attribs . length ; i += 2 ) { attr = attribs [ i ] ; value = attribs [ i + 1 ] ; if ( ! this . _renderingRules . ATTRIBS [ attr ] && ! this . _renderingRules . ATTRIBS [ tagName + "::" + attr ] ) { sWarning = 'FormattedText: <' + tagName + '> with attribute [' + attr + '="' + value + '"] is not allowed' ; Log . warning ( sWarning , this ) ; attribs [ i + 1 ] = null ; continue ; } if ( attr == "href" ) { if ( ! URLListValidator . validate ( value ) ) { Log . warning ( "FormattedText: incorrect href attribute:" + value , this ) ; attribs [ i + 1 ] = "#" ; addTarget = false ; } } if ( attr == "target" ) { addTarget = false ; } if ( cssClass && attr . toLowerCase ( ) == "class" ) { attribs [ i + 1 ] = cssClass + " " + value ; cssClass = "" ; } } if ( addTarget ) { attribs . push ( "target" ) ; attribs . push ( "_blank" ) ; } if ( cssClass ) { attribs . push ( "class" ) ; attribs . push ( cssClass ) ; } return attribs ; }
Sanitizes attributes on an HTML tag.
Sanitizes attributes on an HTML tag .
// add UI5 specific classes when appropriate // attribs[i] is the name of the tag's attribute. // attribs[i+1] is its corresponding value. // (i.e. <span class="foo"> -> attribs[i] = "class" | attribs[i+1] = "foo") // to remove the attribute by the sanitizer, set the value to null // sanitize hrefs // a::href // a::target already exists // add UI5 classes to the user defined // add UI5 classes, if not done before