Html代码:
<input type="text" name="iframe_title" value="null" />
<iframe id="iframe" src="http://www.example.com/somepage.html"></iframe>
<button onclick="steps()">Start !</button>
让我们知道页面http://www.example.com/somepage.html有h1标题这是一个超级标题
function steps()
{
$('#iframe').load(function()
{
$('[name=iframe_title]').prop('value',$('#iframe').contents().find('body').find('h1').text());
alert($('[name=iframe_title]').val()) /* RETURNS THE CORRECT TITLE - This is a super title */
if($('[name=iframe_title]').prop('value') == 'This is a super title')
{
alert('Well done !');
}
else
{
alert('NOT WORKING !');
}
})
}
响应无效!
我尝试将Chrome控制台与这些行一起使用:
alert($('[name=iframe_title]').val()); // Returns: This is a super title
alert($('#iframe').contents().find('body').find('h1').text()); // Returns: This is a super title
这里有什么问题?
我使用内部步骤函数val(),prop()和attr()来设置和获取输入值。没有。不行......
PS:在Chrome上测试过。
修改
somepage.html可能通过ajax插入内容,但我不认为这是一个问题,因为在设置值后,我立即使用提醒并显示正确的标题文字。
已解决:使用.toString()函数。
if ($('[name=iframe_title]').val().toString() == $('#iframe').contents().find('body').find('h1').text().toString())
{
alert("It's working now !");
}