我正在网站上工作,但我遇到了一个问题:我有一个文档列表,如果点击它将显示在iframe中。在列表和iframe上我有一个输入表单,我必须在其中写入文档标题。因此,当我第一次点击文档时输入表单没有改变(默认为“#”),但是当我点击第二个文档时它会获取第一个文档的标题,如果我继续它,则总是最后一个文件的标题,而不是当前选定的标题。
但如果我推荐警报功能,它会显示最后一个文件的标题,但输入表格会显示正确的标题。
此处 HTML代码:
<div>
<iframe class="iframe" src="" id="file" height="480" text-align="center" name="link"> </iframe>
</div>
<div>
Title <br> <input type="text" id="title" value="#" style="background-color:#FFCC99"><br>
</div>
这里 jquery / ajax代码:
function load(file) {
$.ajax({
method: 'GET',
url: file,
success: function(d) {
$('#file').attr('src',file);
//alert($('#file').contents().find('h1.document-title').text());
$('#title').attr('value',$('#file').contents().find('h1.document-title').text());
},
error: function(a,b,c) {
alert('Non ho potuto caricare il file '+file)
}
});
}
也许是因为警报停止运行代码而且它允许加载完整的文档,而没有它,输入表单的值在完全加载所选文档之前会被更改?
如何在输入表单上显示正确的图块? (警报仅用于调试,我不需要它)
感谢您的帮助,抱歉我的英语不好。
答案 0 :(得分:0)
当行$('#title').attr('value',$('#file').contents().find('h1.document-title').text());
已执行,因此一个好的尝试是将.ready()
添加到iframe,如
success: function(d) {
$('#file').attr('src',file);
$('#file').ready(function() {
$('#title').attr('value',$('#file').contents().find('h1.document-title').text());
});
},
这是我的Reference