отправлять данные в iframe при загрузке JavaScript для виджета - PullRequest
1 голос
/ 04 декабря 2009

У меня есть маленький виджет, который имеет довольно много настраиваемых параметров. В настоящее время виджет извлекается с помощью комбинации javascript, создающей iframe, а iframe содержит набор javascript и jquery для построения страницы.

Я не могу добавить сложность конфликтующего javascript на страницу для встраивания, поэтому я создаю iframe и запускаю в нем виджет.

Тем не менее, я немного обеспокоен тем, что длина переменных может быть слишком большой, и может произойти сбой в "Get".

Есть ли способ отправить src iframe с переменными в POST? Нет формы для отправки. Страница внутри iframe написана на php.

Вот как мой javascript в настоящее время создает страницу.

<script type="text/javascript">
 var myWidget_config = {
        key: 'your api key',
        start: 'a test',
        backgroundImage: 'http://background image if the user wants one',  
        optionLink: 'http://optional link to the embeds site', 
        mainText: 'fff', 
        subText: '404040',  
        linkText: '0D1C5D',
        showColor: '',  
        altBackColor:'',
        BorderColor:'3667C1',
        height: '400px', 
        width: '', 
        resultsPerPage: '3'   
                    }
</script>
<script type="text/javascript" src="http://mysite/scripts/setWidget.js"></script>   

Страница 'setWidget.js' выглядит следующим образом

var query='';
for(var key in myWidget_config)
  query += '&'+key+'='+encodeURIComponent(myWidget_config[key]);

  document.write("<iframe frameborder="0" src="http://localhost/widgets/module.php/?'+query+'" width="'+myWidget_config.width+'" height="'+myWidget_config.height+'" scrolling="no"></iframe>');

Это работает только локально, поэтому я не могу показать вам ссылку.

Есть ли хороший чистый способ отправить переменные на страницу php по почте или другим способом, который был бы лучше, чем просто добавление запроса в строку src?

1 Ответ

2 голосов
/ 04 декабря 2009
  • Междоменный XMLHttpRequest с использованием POST (требуется, чтобы запрошенный сайт отправлял соответствующий заголовок Access-Control-Allow-Origin)
  • Создайте форму, используя POST, и отправьте ее, используя JavaScript. Для каждого параметра создайте элемент <input type="hidden"/>.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...