Виджет Javascript против iFrame?Проблемы с безопасностью? - PullRequest
3 голосов
/ 02 ноября 2011

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

Форма должна быть уникальной для веб-сайта, потому что мне нужно знать, на какой адрес электронной почты отправлять форму после ее отправки.

Я думал о iFrame Я мог бы использовать так:

<iframe src="http://www.domain.com/scheduler/shop-name/"></iframe>

Но я не думаю, что это будет лучший способ, и я бы не хотел, чтобы кто-то напрямую заходил на этот URL.

Другой вариант выглядит примерно так:

<script type="text/javascript">
shop_id = '114000300';
</script>
<script src="http://www.domain.com/js.widget" type="text/javascript"></script>

Я не совсем уверен, как выполнить эту опцию, у меня нет такого опыта работы с Javascript, но что вы, ребята, думаете? Каковы плюсы и минусы iFrame против Javascript?

Просто интересно, каков наилучший вариант, и если у кого-то есть советы о том, как начать работу, и о каких-либо проблемах безопасности, за которыми мне нужно следить.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 02 ноября 2011

An <iframe>

  • Невозможно передать свой размер родительскому окну без дополнительной работы, что ограничивает изменение размера.
  • Обеспечивает лучшую изоляцию, поскольку вы не можете получить доступ к чему-либо на родительском окне.стр.Это может быть плюсом с точки зрения вашего клиента.
  • Может быть написано в чистом HTML, опыт работы с Javascript не требуется.
  • Имеет свои собственные независимые стили CSS.
  • Работает дляпользователи, у которых отключены сценарии.

сценарий

  • Позволяет вам получить полный доступ к родительской странице
  • Замедляет загрузку страницы, так как загружается браузерваш скрипт перед рендерингом остальной части страницы.(По крайней мере, как вы там показали, есть способы обойти это.)
  • Очевидно, что требуется некоторый опыт работы с Javascript.
  • Должен делиться стилями с родительской страницей.Это может вызвать проблемы совместимости, если на странице вашего клиента используются правила стиля с широкой областью действия, например, правила для * или div.
3 голосов
/ 02 ноября 2011

Несколько баллов в дополнение к ответу @Dark Falcon,

  • У вас больше контроля над дизайном в случае iframe. В случае виджета javascript стиль клиента может конфликтовать со стилем виджета.
  • iframe лучше с точки зрения безопасности (куки хранятся разные).
  • Создание виджета JavaScript требует большей осторожности и опыта, так как вам нужно, чтобы другой JavaScript не конфликтовал с вашим ». (глобальный vars и т. д.)

Вы можете использовать JavaScript, который записывает iframe динамически, если вы хотите, чтобы кто-то не переходил напрямую по URL.

...