HTML文档中的Javascript变量范围
Javascript variable scope in HTML doc
我正在尝试在iframe中构造一个URL。URL参数在下面的代码中使用jQuery进行解析:
<script type="text/javascript">
$.urlParam = function(name){
var results = new RegExp('[''?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results) { return ''; }
return results[1] || '';
}
var lidval = $.urlParam('lid');
var cidval = $.urlParam('cid');
var cyidval = $.urlParam('cyid');
</script>
<iframe frameborder="0" scrolling="no" width="100%" src="http://somerandomhost.com/Portal/index.php?task=nothankyou&lid='+lidval+'&cid='+cidval+'&cyid='+cyidval"></iframe>
我在somerandomhost.com上看不到第三方系统,目前,该系统返回的响应是数据库中不知道该记录。然而,我知道该记录存在,所以我认为问题是URL没有正确构建。如何将URL显示在页面正文中,以便查看发生了什么?我认为我的变量范围一开始可能是错误的?
看起来您正试图在HTML文档中使用javascript变量。您只能在该脚本标记的作用域中使用这些变量。试试这个
<script type="text/javascript">
$.urlParam = function(name){
var results = new RegExp('[''?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results) { return ''; }
return results[1] || '';
}
var lidval = $.urlParam('lid');
var cidval = $.urlParam('cid');
var cyidval = $.urlParam('cyid');
$('#someFrame').attr('src', "http://somerandomhost.com/Portal/index.php?task=nothankyou&lid="+lidval+"&cid="+cidval+"&cyid="+cyidval);
</script>
<iframe frameborder="0" scrolling="no" width="100%" id="someFrame"></iframe>
您必须将id
应用于帧才能找到它。
同样值得注意的是,在jQuery变量中添加特殊函数是一种糟糕的形式http://learn.jquery.com/plugins/basic-plugin-creation/
HTML将无法访问您的javascript变量。您需要使用document.write来构造您的iframe标记。或者尝试jquery以获得方便。
您可以在jquery:中执行此操作
<script type="text/javascript">
$.urlParam = function(name){
var results = new RegExp('[''?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results) { return ''; }
return results[1] || '';
}
var lidval = $.urlParam('lid');
var cidval = $.urlParam('cid');
var cyidval = $.urlParam('cyid');
//construct url
var iframe_url = 'http://somerandomhost.com/Portal/index.php?task=nothankyou&lid='+lidval+'&cid='+cidval+'&cyid='+cyidval;
jQuery(function($){
$('#your_frame_id').attr('src', iframe_url);
});
</script>
<iframe frameborder="0" id="your_frame_id" scrolling="no" width="100%" src=""></iframe>
向iframe添加一个id,并从脚本中设置src。
$( '#myIframe' )[0].src = "http://somerandomhost.com/Portal/index.php?task=nothankyou&lid="+lidval+"&cid="+cidval+"&cyid="+cyidval;
使用JavaScript变量动态编写/打开iframe。这应该能解决你的问题。
使您的代码类似
<script type="text/javascript">
$.urlParam = function(name){
var results = new RegExp('[''?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results) { return ''; }
return results[1] || '';
}
var lidval = $.urlParam('lid');
var cidval = $.urlParam('cid');
var cyidval = $.urlParam('cyid');
$("iframe").attr(src, 'http://somerandomhost.com/Portal/index.php?task=nothankyou&lid='+lidval+'&cid='+cidval+'&cyid='+cyidval');
</script>
<iframe frameborder="0" scrolling="no" width="100%" src=""></iframe>
像这样的东西,也许不完全是这样。
相关文章:
- js命名空间和变量范围
- 如何确保变量范围在这个循环中得到维护
- 在两个浏览器选项卡之间共享变量范围
- 文件API中的Javascript变量范围
- javascript和jQuery的嵌套对象函数中的变量范围
- JavaScript 函数变量范围问题
- JavaScript 中变量范围的问题
- Javascript - 揭示对象和变量范围
- 主干.js(具有 Require.js)变量/范围访问问题
- Javascript 变量范围未定义
- 如何绕过javascript变量范围
- IE 8变量范围错误
- 了解 Javascript 变量范围
- 控制变量范围
- 函数之间的Javascript变量范围问题
- 这种减少if语句中声明的变量范围的模式是一种好的做法吗
- 用于未初始化的局部变量的javascript变量范围
- 变量范围
- 请求节点模块变量范围
- Javascript 和 JQuery dom 全局变量范围