【问题标题】:Uncaught SyntaxError: Unexpected token } when using iFrameUncaught SyntaxError: Unexpected token } 使用 iFrame 时
【发布时间】:2015-03-11 14:55:37
【问题描述】:

我一直在尝试使用 iFrame 从外部站点加载网页。页面链接是从网络服务器动态加载的。

没有 iFrame,网站可以完美加载,但是当我添加 iFrame 时出现此错误:Uncaught SyntaxError: Unexpected token }

日志显示它位于 HTML 文件的第 2 行,即:<head>

我不太确定出了什么问题或该怎么做。有人可以帮我解决这个问题吗?

iFrame 的代码如下:<iframe id="aModule" src="#error"></iframe>

使用此函数更改 src(从未使用过,因为从未触发过 alert() 行:

function setTheModule(link){
alert();
    document.getElementById("aModule").src = link;
    alert();
}

setTheModule 是从另一个使用这些方法动态生成的列表中调用的:

function loadModules(course){
var data = {
  "fn" : "mod",
  "data": course,
  "ajax" : "true"
};
$.ajax({
  type: "GET",
  url: SERVICE_URL, //Relative or absolute path to response.php file
  data: data,
  contentType: "application/json",
  success: function(response) {

    var i, list = "";
        for (i = 0; i < response.module.length; i++) {
            list += formatModuleListItem(response.module[i]);
        }
        window.location="#modules";
        $("#mList").html(list).listview('refresh');
  }
});

}

function formatModuleListItem(item){
var fItem = "<li class='wrap'><a href='#' onclick='setTheModule('http://" + item.link +"')'>"+ item.name +"</p></li>";
return fItem;
}

我真的希望有人可以帮助我:)

【问题讨论】:

    标签: javascript jquery html iframe


    【解决方案1】:

    首先你的formatModuleListItem函数有语法错误,你必须把它改成这样:

    function formatModuleListItem(item){
    var fItem = "<li class='wrap'><a href='#' onclick='setTheModule(\"http://" + item.link +"\")'>"+ item.name +"</a></li>";
    return fItem;
    }
    

    你有这个函数setTheModule('someVar') 然后你将它封装在一个字符串中,这将是这样的:

    onclick='setTheModule('someVar')'

    而且单引号之间会有冲突

    所以我把函数改成了setTheModule(\"someVar\")

    然后也没有&lt;p&gt;,所以我从字符串末尾删除了&lt;/p&gt;,并添加了&lt;/a&gt;

    希望改变它可以解决您的问题

    【讨论】:

      猜你喜欢
      • 2012-05-17
      • 2019-02-10
      • 2014-07-08
      • 2011-03-09
      • 2014-01-06
      • 2012-04-10
      • 1970-01-01
      相关资源
      最近更新 更多