Запись значения на страницу без появления в исходном коде - PullRequest
2 голосов
/ 18 июня 2011

Мне было интересно, если кто-нибудь может сказать мне, как достигается следующее. Я просматривал пользовательский интерфейс построения системы Digitalstormonline и заметил, что их цена обновляется без каких-либо следов в firebug.

http://www.digitalstormonline.com/comploadhailstorm.asp?id=477406

тег ввода, который содержит обновленную цену, не содержит понятия о том, что такое обновленная цена. Я понимаю, что цена рассчитывается на стороне сервера, но как они могут обновлять число таким образом, чтобы не включать его в исходный код?

спасибо

Ответы [ 3 ]

1 голос
/ 18 июня 2011

Они содержат всю информацию в JavaScript в исходном коде HTML:

networkcards[1] = new Array()
networkcards[1][0] = "Wireless-PCI N 300Mbps (Supports 802.11n/g/b) <b>[+$49]</b>";
networkcards[1][1] = "49";
networkcards[1][2] = "9030";
networkcards[1][3] = "/control/images/thumbCONF9030.jpg";
networkcards[1][4] = "&nbsp;";
networkcards[1][5] = "";
networkcards[1][6] = "";


networkcards[2] = new Array()
networkcards[2][0] = "Wireless-USB N 300Mbps (Supports 802.11n/g/b) <b>[+$49]</b>";
networkcards[2][1] = "49";
networkcards[2][2] = "9031";
networkcards[2][3] = "/control/images/thumbCONF9031.jpg";
networkcards[2][4] = "&nbsp;";
networkcards[2][5] = "";
networkcards[2][6] = "";


networkcards[3] = new Array()
networkcards[3][0] = "!PROMOTION: Killer 2100 (Optimized for Online Gaming) Lag and Latency Reduction <b>[+$99]</b>";
networkcards[3][1] = "99";
networkcards[3][2] = "9119";
networkcards[3][3] = "/control/images/thumbCONF9119.jpg";
networkcards[3][4] = "&nbsp;";
networkcards[3][5] = "Features";
networkcards[3][6] = "100";

Элемент [1] многомерного массива содержит информацию о цене.

1 голос
/ 18 июня 2011

Значение обновляется на стороне клиента, хотя тот факт, что вы не видите изменений, является вполне стандартным. Javascript изменяет значение, которое не обязательно меняет DOM (то, что вы называете источником, или то, что вы видите в firebug), но никакой магии не происходит, если вы открываете консоль firebug после настройки цены и выполняете:

$('#divStayTopLeft input').val();

Вы увидите обновленное значение.

Вы можете упростить все это и сделать то же самое с помощью простой скрипки: http://jsfiddle.net/wexTS/

Источник начинается с <input id="foo" value="bar" /> И вот как это выглядит в firebug после изменения, но ясно, что значение меняется на fooooo

Аналогичный вопрос: jQuery - выбранный атрибут для параметров не отображается в FireBug

0 голосов
/ 18 июня 2011

На самом деле, оно написано в исходном коде и рассчитывается на стороне клиента.

Начиная со строки 178:

//CORE******8888
// CASES
var cases;
cases = new Array; 

cases[0] = new Array()
cases[0][0] = "Special Deal Hot Seller - Black OPS HailStorm Edition";
cases[0][1] = "421";
cases[0][2] = "8357";
cases[0][3] = "/control/images/thumbCONF8357.jpg";
cases[0][4] = "&nbsp;"; //selected item
cases[0][5] = ""; //selected item
cases[0][6] = ""; //selected item

... (и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...