Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Wordpress管理-iframe中的实时帖子预览_Jquery_Wordpress_Iframe_Admin_Preview - Fatal编程技术网

Jquery Wordpress管理-iframe中的实时帖子预览

Jquery Wordpress管理-iframe中的实时帖子预览,jquery,wordpress,iframe,admin,preview,Jquery,Wordpress,Iframe,Admin,Preview,我的目标是在Wordpress admin中的自定义帖子类型编辑表单中显示实时预览。我说到这里,我可以成功地在编辑后的表单中,在meta/ACF字段旁边显示iframe和预览,如此线框所示: 当我单击“预览更改”按钮时,iframe内容已成功刷新。但我想在更改某些ACF字段后自动执行此操作。因此,我尝试用jQuery模拟单击此按钮: $('input, select', $('#acf-group_609ca87c411ae')).on('change', function() {

我的目标是在Wordpress admin中的自定义帖子类型编辑表单中显示实时预览。我说到这里,我可以成功地在编辑后的表单中,在meta/ACF字段旁边显示iframe和预览,如此线框所示:

当我单击“预览更改”按钮时,iframe内容已成功刷新。但我想在更改某些ACF字段后自动执行此操作。因此,我尝试用jQuery模拟单击此按钮:

$('input, select', $('#acf-group_609ca87c411ae')).on('change', function() {
      $('a.preview').click();
});
但当我这样做时,行为完全不同:不是刷新iframe,而是用消息:Post updated刷新整个页面

我觉得我很快就能让这个实时预览工作了,但我被这个简单的点击模拟困了几个小时。你能帮我吗


编辑:忘记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();
  });
});

有一段时间没用Wordpress了,所以在这里猜猜看。您可以查看由单击Preview Changes按钮触发的函数,并使用该代码直接刷新iframe,而不是调用按钮上的click事件。我尝试直接调用代码,但没有成功。似乎我需要调用多个后续触发器,但我还没有找到具体的触发器和顺序…好吧,在这种情况下,您可能必须找出这一部分,因为我看不到任何其他触发按钮程序的方法。Cally您的代码什么都不做,因为它只是设置了事件处理程序。但是,即使我在它之后触发单击,页面也会完全刷新:
$('a.preview')。单击(函数(e){e.preventDefault();})。单击()
因此,您实际上说您希望模拟对该元素的单击,这样它所做的一切都会发生,而不会刷新页面。就像是通过ajax完成的一样?当我点击这个按钮时,它的行为不像标准链接。似乎有一些处理程序会导致不同的行为,比如将编辑表单提交到目标窗口。我想简单地用Javascript模拟与手动单击此按钮相同的行为。做同样的事情。我在wordpress核心javascript中寻找这些事件处理程序,并试图将其中一些复制到我的代码中,但没有成功。似乎有多个触发器需要按特定顺序触发才能发生这种行为。。。