如何在我现有的应用程序中有条件地使用iframe的源代码和渲染元素?

时间:2018-01-03 19:02:13

标签: javascript php html laravel iframe

我有一个Laravel PHP应用程序。它的网址一直是site1.example.com。

我正在开发一个新网站,我想暂时在新网站上的iframe中显示来自旧网站的内容(我知道有更好的替代方式来移动或转换内容,但我必须使用iframe由于其他限制)。

我需要能够从旧网站上删除页眉和页脚,并在iframe中显示来自旧网站的简单无格式内容。

一位同事在旧网站的模板中尝试了以下内容,以检测请求的来源,并仅渲染所需模板的部分。

if ($_SERVER['SERVER_NAME'] == 'site1.example.com')
{
…
}

显然,这不起作用,因为请求来自site1.example.com,无论是直接从浏览器还是从iframe加载。

如何检查网站是否通过site2.example.com上的iframe加载并相应地有条件地呈现?

1 个答案:

答案 0 :(得分:0)

  • 方法1:

在框架内部使用JavaScript url来获取父窗口的show()。然后使用javascript将hide()url元素相对于<iframe>

  • 方法2:

通过向querystring添加url变量来打开<iframe src="mysite.com?q=iframe" />。一旦获得变量,将其保存为会话cookie,并在每个页面中检查该会话cookie以确定。例如。

USE master GO IF EXISTS(SELECT * FROM sys.databases WHERE name = 'GlobalAirportDatabase') DROP DATABASE GlobalAirportDatabase CREATE DATABASE GlobalAirportDatabase GO USE GlobalAirportDatabase IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'yourTABLEname' AND TABLE_SCHEMA = 'dbo') DROP TABLE dbo.tblAirport; GO CREATE TABLE tblAirport ( AirportID INT IDENTITY(1,1) NOT NULL, ICAOCode VARCHAR(4) NOT NULL, AirportCode VARCHAR(3) NOT NULL, strName VARCHAR(MAX) NULL, strCity VARCHAR(MAX) NULL, strCountry VARCHAR(MAX) NULL, degLat DEC(7,2) NULL, minLat DEC(7,2) NULL, secLat DEC(7,2) NULL, Equator VARCHAR(MAX) NULL, degLong DEC(7,2) NULL, minLong DEC(7,2) NULL, secLong DEC(7,2) NULL, Meridian VARCHAR(MAX) NULL, strElevation VARCHAR(4) NULL, ) GO ALTER TABLE tblAirport ADD PRIMARY KEY (AirportID) GO INSERT INTO tblAirport (ICAOCode, AirportCode, strName, strCity, strCountry, degLat, minLat, secLat, Equator, degLong, minLong, secLong, Meridian, strElevation,) VALUES AYGA:GKA:GOROKA:GOROKA:PAPUA NEW GUINEA:06:04:54:S:145:23:30:E:5282 AYLA:LAE::LAE:PAPUA NEW GUINEA:00:00:00:U:00:00:00:U:0000 AYMD:MAG:MADANG:MADANG:PAPUA NEW GUINEA:05:12:25:S:145:47:19:E:0020 AYMH:HGU:MOUNT HAGEN:MOUNT HAGEN:PAPUA NEW GUINEA:05:49:34:S:144:17:46:E:5388 AYNZ:LAE:NADZAB:NADZAB:PAPUA NEW GUINEA:06:34:11:S:146:43:34:E:0239 AYPY:POM:PORT MORESBY JACKSONS INTERNATIONAL:PORT MORESBY:PAPUA NEW GUINEA:09:26:36:S:147:13:12:E:0146 AYRB:RAB::RABAUL:PAPUA NEW GUINEA:00:00:00:U:00:00:00:U:0000 AYWK:WWK:WEWAK INTERNATIONAL:WEWAK:PAPUA NEW GUINEA:03:35:01:S:143:40:09:E:0019 BGAM:N/A::ANGMAGSSALIK:GREENLAND:00:00:00:U:00:00:00:U:0000 BGAS:N/A::ANGISSOQ:GREENLAND:00:00:00:U:00:00:00:U:0000 BGAT:N/A::APUTITEQ:GREENLAND:00:00:00:U:00:00:00:U:0000 BGBW:UAK:NARSARSUAQ:NARSSARSSUAQ:GREENLAND:61:09:40:N:45:25:39:U:0112 BGCH:JCH::CHRISTIANSHAAB:GREENLAND:00:00:00:U:00:00:00:U:0000