- Я объявил локальную переменную с именем cont в функции с именем validate.
- Я вызываю процесс функции изнутри validate.
- Я отправляю строку 'cont'в качестве аргумента для проверки функции.
- В функции процесса, используя строку 'cont', я хочу получить доступ к значению локальной переменной javascript, например, к окну ['cont'].Но я получаю неопределенное.
- Я пытаюсь получить доступ к переменным, таким как $ GLOBALS в php или $$.
Вот пример того, что я сделал.
<script>
function process(str)
{
alert(window[str]);
}
function validate()
{
var cont='once there lived a king named midas';
process('cont')
}
validate();
</script>
Причина в том, что я делаю большинство форм как ajax.Я не хочу, чтобы сделать строку запроса, как это.
var param = "command=insert&content=" + encodeURIComponent(cont);
Я хочу сделать так.
var param = makeParam('command,[insert],content,(cont)');
Что я делаю в makeparam, так это то, что я использую регулярное выражение для извлечения пар ключ-значение.поэтому я получаю строку cont из (cont) и подставляю ее в переменную окна, например window [cont].Конт будет иметь строку 'продолжение'.
так, как мы можем получить содержимое переменной, используя имя переменной в качестве строки?
, поэтому я ищу javascript эквивалент php$$
Отредактировано
часть кода, где я извлекаю cont, который находится внутри (cont), что означает, что я хочу содержимое строки между ().
nxt = str[i+1].match(/\((.*)\)$/)
if(nxt)param += '=' + encodeURIComponent(window[nxt[1]]);
содержание param будет
"command=insert&content=once there lived a king"
// assume that once there lived a king is encoded
Редактировать.Примечание 2.
После нескольких дополнительных ответов я редактирую код, чтобы добавить это.
Я пытаюсь сделать как $ GLOBALS в php.
У меня нетМы попытались определить, может ли $ GLOBALS содержать локальные переменные.
, и выяснили, что локальная область не входит в $ GLOBALS.
Обновление после прочтения Обновления Феликса Кинга.
Я хочу использовать функцию, которая будет создавать строку запроса как можно проще.как следующее.
var param = makeParam('command,insert,/title/,/keywords/,/description/,mode,[1],fckcontent,(cont)');
// if it is a text without // or () then the it is a straight key value pair. so i will do comment=insert.
//if it is /title/ then the key is title and its value is an input elements value with id as title so title=getElementById('title')
//if it is mode,[1] then mode is the key and 1 is its direct value//
//if it is fckcontent,(cont) then fckcontent is the key and cont is a javascript local variable which will contain html content from a WYSIWYG editor.
// a sample result will be
var param = "command=insert&keywords=somekeywords&description=somedescription&mode=1&fckcontent=<p>once there lived a king<p>
и затем Касабланка заявил, что $ GlOBALS не будет содержать локальные переменные области видимости, и то же самое в javascript.это верно.