无法让我的脚本(jquery)将第1帧中的文本插入到第2帧的textarea中。

时间:2016-02-23 02:47:06

标签: javascript jquery cross-domain dynamic-linking frames

我一直试图让这一切顺利进行 - 执行高级搜索失败。当前设置如下:我无法弄清楚如何将帧链接在一起,所以当我单击第一帧中的列表时,文本被插入并显示在第二帧文本区域中。我知道必须有一种更容易的方法来做到这一点,我错过了。谢谢!

$the_query = new WP_Query( 'cat=6,7');

     

2 个答案:

答案 0 :(得分:1)

frame1无法访问frame2的DOM。这意味着您无法像预期的那样使用jQuery操作textarea。相反,使用postMessage在帧之间发送消息,然后在第二帧中为该消息设置一个侦听器。当您收到它时,相应地设置文本。类似的东西:

第1帧

var msg = {
   message: "updateText",
   text: $(this).text()
};

top.frames["group_b.html"].postMessage(JSON.stringify(msg), '*');

第2帧

window.addEventListener("message", receiveMessage, false);

function receiveMessage(event)
{ 
  if (event.data.message === "updateText"){
    $('#alltext').text(event.data.text);
  }
}

请注意,您必须将代码放在jQuery对象所在的位置。

答案 1 :(得分:0)

在正常的html https://jsfiddle.net/Cuchu/shs21jgs/中,您的javascript代码需要正常关闭。

$(document).ready(function(){
    $("li").click(function(){
        $('#alltext').append($(this).text());

        $("a").click(function(event){
            event.preventDefault();
            linkLocation = this.href;
          });
          function redirectPage() {
              top.frames["group_b.html"].location = linkLocation;
          };
    });
});