我有一个小小部件,有很多可定制的选项 . 该小部件当前由javascript创建iframe的组合检索,iframe包含一堆javascript和jquery来构建页面 .
我不能将冲突的javascript的复杂性添加到嵌入页面,这就是为什么我构建一个iframe,并在其中运行小部件 .
但是,我有点担心变量的长度可能太长,并且可能在“Get”中失败 .
有没有办法用POST中的变量发送iframe的src?没有提交的表格 . 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>');
这只是在本地运行,所以我无法向您显示链接 .
有没有一个很好的干净方式让我通过post或其他方法将变量发送到php页面,这比仅仅将查询附加到src字符串更好?
1 回答
使用POST的跨域XMLHttpRequest(要求请求的站点发送适当的
Access-Control-Allow-Origin
标头)使用POST创建表单并使用JavaScript提交 . 对于每个参数,请创建
<input type="hidden"/>
元素 .