Javascript.RU

PHP-функция: define

Javascript:

define = (function(){	// Defines a named constant
	// 
	// +   original by: Andrea Giammarchi (http://webreflection.blogspot.com)

	function toString(name, value){
		return  "const " + name + "=" + (
			/^(null|true|false|(\+|\-)?\d+(\.\d+)?)$/.test(value = String(value)) ? value : '"' + replace(value) + '"'
		)
	};
	var define, replace;
	try{
		eval("const e=1");
		replace = function(value){
			var replace = {"\x08":"b","\x0A":"\\n","\x0B":"v","\x0C":"f","\x0D":"\\r",'"':'"',"\\":"\\"};
			return  value.replace(/\x08|[\x0A-\x0D]|"|\\/g, function(value){return  "\\"+replace[value]})
		};
		define = function(name, value){
			var script = document.createElement("script");
			script.type = "text/javascript";
			script.appendChild(document.createTextNode(toString(name, value)));
			document.documentElement.appendChild(script);
			document.documentElement.removeChild(script);
		}
	}
	catch(e){
		replace = function(value){
			var replace = {"\x0A":"\\n", "\x0D":"\\r"};
			return  value.replace(/"/g, '""').replace(/\n|\r/g, function(value){return replace[value]})
		};
		define = this.execScript ?
		function(name, value){
			execScript(toString(name, value), "VBScript");
		}:
		function(name, value){
			eval(toString(name, value).substring(6));
		}
	};
	return  define;
})();

Примеры:

define('AUTHOR_NAME', 'Andrea Giammarchi');
true


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
4 + 5 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum