2016-07-20 4 views
1

У нас есть скрипт, запущенный на ранней стадии нашей страницы, который передает значения стороннему пользователю.Создать переменную из элемента данных на странице

foo.bar.myPage({ 
    "myId": "12345", 
    "myName": "My name is Joe", 
}); 

Я хочу создать новую переменную, используя одно из этих значений, и использовать ее для чего-то еще. Я не могу понять, как захватить значение сверху. У меня нет доступа к указанному выше коду - нужно сделать это с помощью javascript или jquery через CMS. Помогите?

var valueFromMyId = $(myId); 
alert (valueFromMyId); 

Очевидно, что я хочу, чтобы «12345» срабатывало в моем предупреждении.

+0

Невозможно сказать, мы не знаем, что делает myPage() и что он устанавливает – epascarello

+0

Мы не знали, что функция 'myPage' делает. Вы можете напечатать 'foo.bar' с помощью' console.log (foo.bar) 'и посмотреть, найдете ли где-то там свою информацию ... – eisbehr

+0

Я тоже ... это проблема :) Я попробую, что – user3390251

ответ

0

Я пытался что-то вроде этого:

foo = { 
     "bar":{ 
      "myPage":function(param){ 
        console.log("inside"+param); 
      } 
     }}; 

foo.bar.myPage(123); //print inside 123 

Теперь попробуйте это переопределить, если вы можете получить доступ к foo.bar.

var backup = foo.bar.myPage 
foo.bar.myPage = function(param){ 
      console.log("Using params outside the actual function "+ param); 
//calling the actual function which was getting called initially 
       backup(param); 
} 

теперь каждый foo.bar.myPage вызов будет проходить через ваш метод определения, таким образом, вы можете получить доступ из параметров, прежде чем фактическая функция получает его.

Возможно, это не лучший способ сделать это. Но будет работать, если у вас есть доступ к объекту foo.bar. Протестируйте и дайте мне знать, если это поможет.

+0

нет доступа к foo.bar к сожалению – user3390251

+0

Для этого вам не нужен доступ к коду. Вы перезапишите функцию во время выполнения. Проблема заключается в том, чтобы перезаписать функцию между загрузкой скрипта и линией 'foo.bar.myPage ({});'. Но тогда это может сработать. – eisbehr

+0

@ user3390251, вы действительно пробовали использовать этот фрагмент кода? – Ninja

Смежные вопросы