我一直在尝试使用iFrame从外部网站加载网页。页面链接正在从Web服务器动态加载。
如果没有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;
}
我真的希望有人可以帮助我:)。
答案 0 :(得分: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\")
然后也没有<p>
所以我从字符串的末尾删除了</p>
并添加了</a>
。
希望改变它可以解决你的问题