0
我有一個頁面,其中嵌入了iFrame中的Google靜態地圖實例。加載頁面時,此iFrame的初始實例加載設置的位置。用戶可以點擊頁面上的地址列表,並根據他們的選擇,嵌入Google地圖的iFrame通過AJAX重新加載。使用Google靜態地圖AJAX時的URL中的空白
我在加載新URL時遇到了一些麻煩。以下是我目前使用的PHP
$database->mysqlquery("SELECT street_address
FROM favorites
WHERE id = $row_id");
while($row = mysql_fetch_array($database->results)){
$address = $row[street_address];
}
$url = "http://maps.googleapis.com/maps/api/staticmap?center=$address&zoom
=18&size=640x640&sensor=false";
我從我的數據庫中獲取地址並將其分配給一個變量。然後我將該變量傳遞給靜態地圖URL。
隨着定義的URL,我稱之爲一個iFrame
<iframe width = "425" height = "315" frameborder = "0" scrolling = "no"
marginheight = "0" marginwidth = "0" src= "<?php echo $url; ?>" id = "iframe"></iframe>
,當我直接打PHP頁面的iFrame不加載或通過AJAX調用頁面。當我使用Chrome或Firefox檢查網頁,我看到下面的源
<iframe width="425" height="315" frameborder="0" scrolling="no"
marginheight="0" `marginwidth="0"
src="http://maps.googleapis.com/maps/api/staticmap?center=116 Ponce De Leon Ave
NE, Atlanta, GA&zoom=18&size=640x640&sensor=false" id="iframe"></iframe>
如果我從上面的SRC字符串,並通過瀏覽器直接加載的鏈接,地圖加載。
爲什麼我的iFrame無法加載?
更新
新的iFrame HTML添加rawurlencode()到$地址變量編碼
<iframe width="425" height="315" frameborder="0" scrolling="no" marginheight="0"
marginwidth="0"
src="http://maps.googleapis.com/maps/api/staticmap?
center=116%20Ponce%20De%20Leon%20Ave%20NE%2C%20Atlanta%2C%20GA&
zoom=18&size=640x640&sensor=false" id="iframe"></iframe>
我增加了rawurlencode()函數來編碼$(當您使用空間的網址,直接在瀏覽器中,因爲大多數瀏覽器會自動編碼網址,它的工作原理)地址變量。我仍然無法加載地圖。 src現在已經格式化了空格,但地圖仍然不顯示。如果我在新的src中複製鏈接並使用我的瀏覽器轉到該鏈接,則地圖會顯示 –
**第1次:**網址中仍存在空格和換行符。 **然後:**返回的文件是圖像,而不是HTML文檔!服務器發送一個'x-frame-options-header',它被設置爲**同源**,因此你不能將它用作iframe-src。使用''代替'' –
Awww,你的確是對的。它需要被包含在img中而不是iframe中。上面的換行符被添加了,所以我可以更好地顯示代碼 –