如何检测URL用户从外窗口导航到iframe?

时间:2014-06-12 11:10:03

标签: javascript html dom iframe cross-domain

场景如下:

该页面中有一个页面和一个iframe。从一开始,它们都来自同一个域(来源)。 iframe可以包含链接(或更改window.location.href的javascript)到其他域。我想在外框中检测,当用户离开iframe中的原始域时,用用户导航到的URL替换外页的window.location.href,从而结束当前的应用程序在外框架上跑。

尝试使用 beforeunload 事件,但内部框架的location.href不会更改。此iframe DOM元素的 src 属性在其contentDocument更改时也不会更改。

我的问题在当前的浏览器实现中是否可以解决,或者您使用什么方法来获得与所描述的最接近的行为?

1 个答案:

答案 0 :(得分:0)

      #include <iostream>

      using namespace std;

      int merge(int *left,int nl,int *right,int nr,int *a)
      {

         int i=0,j=0,k=0;
         while(i<nl && j<nr)
         {
            if(left[i]<right[j])
            {
             a[k]=left[i];
             i++;
            }
            else
            {
             a[k]=right[j];
             j++;
             }
            k++;
           }
        while(i<nl)
        {
         a[k]=left[i];
          i++;
        }
       while(j<nr)
       {
         a[k]=right[j];
         j++;
       }
 }
 int mergesort(int *a,int n)
{

      if(n<2) return 0;
      int mid=n/2;
      int *left=new int[mid];
      int *right=new int[n-mid];

    for(int i=0;i<=mid-1;i++)
    {
      left[i]=a[i];
     }
     for(int i=mid;i<=n-1;i++)
     {
       right[i]=a[i];
     }
      mergesort(left,mid);
      mergesort(right,n-mid);
      merge(left,mid,right,n-mid,a);
     delete[]left;
     delete[]right;
    }

   int main() {
       //code
      int a[]={10,7,8,9,4,2,3,6,5,1};
      int n=sizeof(a)/sizeof(a[0]);
      mergesort(a,n);
      for(int i=0;i<10;i++)
      {
       cout<<a[i]<<"\t";
      }
      return 0;
       }