问题描述
我的目标是在 wordpress 管理员的自定义帖子类型编辑表单中显示实时预览。我到了这一点,我可以成功地在元/ACF 字段旁边以预览形式显示 iframe,如此线框所示:
当我点击“预览更改”按钮时,iframe 内容刷新成功。但是我想在更改某些 ACF 字段后自动执行此操作。所以我尝试用 jQuery 模拟点击这个按钮:
$('input,select',$('#acf-group_609ca87c411ae')).on('change',function() {
$('a.preview').click();
});
但是当我这样做时,行为完全不同:不是刷新 iframe,而是刷新整个页面并显示消息:发布更新。
我觉得我很接近让这个实时预览工作,但我在这个简单的点击模拟上停留了几个小时。你能帮我吗?
编辑:忘记 iframe 的事情 - 如果您是 wordpress 程序员,只需在编辑帖子屏幕上打开 WP admin 并尝试以编程方式模拟单击“预览更改”按钮。如果你得到与点击它相同的行为 - 在这里发布 javascript。谢谢!
解决方法
您正在触发将重新加载页面的点击。它的默认行为。 如果您不希望链接继续,则需要停止触发事件。你可以试试:
//This should trigger the click but prevent the default behaviour of reloading the page
//Untested
$('input,select',$('#acf-group_609ca87c411ae')).on('change',function() {
$('a.preview').click(function(e){
e.preventDefault();
});
});