Я бы рекомендовал использовать оператор унарного плюса, чтобы принудительно обрабатывать возможную строку как число в скобках, чтобы сделать код более читаемым, например:
(+varname)
Итак, в вашем это:
var num1 = '20',
num2 = '30.5';
var sum = (+num1) + (+num2);
// Just to test it
console.log( sum ); // 50.5
Если документ всплывающего окна находится из другого домена, это просто невозможно.
Обновление, апрель 2015 г .: Я ошибался насчет этого: если вы владеете обоими доменами, вы можете использовать window.postMessage
и сообщение
событие в ] практически все браузеры , актуальные сегодня .
Если нет, то вы все равно не сможете сделать эту работу кросс-браузерной без помощи документа, загружаемого во всплывающее окно. Вы должны иметь возможность обнаруживать изменение во всплывающем окне, которое происходит после его загрузки, что может быть переменной, которую JavaScript устанавливает на всплывающей странице, когда он обрабатывает собственное событие load
, или если у вас есть некоторый контроль над этим, вы можете добавить вызов функции в открывателе.
onload
обработчик событий должен находиться внутри разметки HTML
всплывающего окна.
var myPopup = window.open(...); myPopup.addEventListener('load', myFunction, false);
Если вы заботитесь об IE, используйте следующую вторую строку:
myPopup[myPopup.addEventListener ? 'addEventListener' : 'attachEvent']( (myPopup.attachEvent ? 'on' : '') + 'load', myFunction, false );
Как вы видите, поддержка IE довольно громоздка и ее следует избегать по возможности. Я имею в виду, что если вам нужно поддерживать IE из-за вашей аудитории, то, конечно, делайте это.