2010-11-10 54 views
5

Tôi muốn hiển thị hình ảnh trong iframe trên trang web của mình. Tuy nhiên, vấn đề là tôi không thể mở rộng đến 100% kích thước của nó.Hiển thị hình ảnh trong Iframe

Điều tôi muốn làm là như sau.

  • Có iframe trên trang web của tôi.
  • Gọi một hình ảnh trong khung nội tuyến.
  • Làm cho hình ảnh mở rộng thành kích thước đầy đủ và dưới dạng phản ứng, khung nội tuyến cho phép tôi cuộn.
  • Không có bất kỳ thanh cuộn trên trang web của tôi

Hiện nay, đây là đoạn code tôi có:

echo"<iframe name='graph' id='graph' src=$image style='position:absolute; top:0px; left:0px; height:100%;width:100%'></iframe>"; 

Điều này không là, nó làm cho các iframe đến trên đầu trang của trang web của tôi và vẫn không mở rộng đến 100%. Nếu tôi loại bỏ các position: absolute thay vì:

echo"<iframe name='graph' id='graph' src=$image style='top:0px; left:0px; height:100%;width:100%'></iframe>"; 

Tôi cuối cùng nhận được nó để mở rộng chiều rộng đến 100%, nhưng về chiều cao, nó là cao chỉ 3 pixel và có một thanh cuộn để di chuyển đến đáy.

Tôi đã xóa trang web tìm kiếm bản sửa lỗi, nhưng không có gì tôi đã thử làm việc. Một số đề cập việc thay đổi CSS là tốt, nhưng không có kết quả ...

EDIT

Một vấn đề tôi phải đối mặt là hình ảnh được thu nhỏ trong Firefox. Tôi cần phải nhấp vào hình ảnh trong khung nội tuyến để mở rộng hình ảnh ở kích thước đầy đủ. Nó hiển thị một cách chính xác trong Chrome và IE mặc dù. có cách sửa nào cho nó không?

+0

Tại sao bạn đặt hình ảnh trong iframe ở địa điểm đầu tiên? Làm như vậy sẽ đưa họ ra ngoài phạm vi các quy tắc CSS hoặc JavaScript trên trang của bạn, hạn chế nghiêm trọng quyền kiểm soát trang của riêng bạn. –

+0

Dan, tôi không muốn hình ảnh lớn của tôi giới thiệu thanh cuộn đến trang của tôi. Không phải cách tốt nhất để làm điều đó có lẽ, tôi biết ... – 12345

+0

Sau đó đặt chúng bên trong một div với kích thước tối đa cố định, thiết lập thuộc tính tràn của nó để nó nhận thanh cuộn thay vì trang của bạn và sử dụng JavaScript để thay đổi kích thước hình ảnh sau đó tải để vừa với div và loại bỏ các thanh cuộn. Đặt hình ảnh trong khung nội tuyến sẽ lấy đi khả năng của bạn để làm những việc như vậy. –

Trả lời

0

Thêm phần này vào CSS trang chính của bạn:

body, html { 
    height:100% 
} 
+0

Không có diode thay đổi .. – 12345

+0

Nó có thể phụ thuộc vào phần còn lại của HTML của bạn. –

+0

Điều này sẽ không hoạt động vì anh ấy đang nhúng hình ảnh trực tiếp, đặt nó bên ngoài ngữ cảnh của tài liệu hiện tại. –

1

Bạn có thể sử dụng một số hoạt Javascript để phát hiện kích thước của nội dung iframe và thay đổi kích thước khung nội tuyến.

0

Vùng chứa (div kèm theo, nếu bạn không có vùng chứa, bạn nên tạo một,) dường như là giới hạn chiều cao của khung nội tuyến. Hãy thử làm cho chiều cao của container 100%.

+0

Khung nội tuyến nằm trong bảng. Và bảng không có thuộc tính chiều cao = "100%". – 12345

0

Vấn đề của bạn là bạn đang trực tiếp nhúng tài nguyên hình ảnh.

Điều này sẽ không bao giờ hoạt động theo cách bạn muốn. Hình ảnh luôn là kích thước gốc.

Bạn cần đặt thuộc tính src của khung nội tuyến thành tệp HTML riêng biệt với số body riêng của mình, bao quanh hình ảnh. Sau đó, bạn có thể cho nó chiều rộng và/hoặc chiều cao 100% bên trong cơ thể bằng cách sử dụng CSS.

+0

Hmm, thay vì tạo một trang khác chỉ để hiển thị hình ảnh. Có cách nào khác mà tôi có thể xem xét? Tất cả, tôi thực sự muốn làm là giữ trang hiện tại của tôi không có cuộn và chỉ có thể cuộn hình ảnh của tôi ... – 12345

+0

@ 12345 tại sao không sử dụng 'div' với' overflow: auto'? –

+0

không tạo sự khác biệt ... http: //api.fatherstorm.com/test/iframe2.php – FatherStorm

-1

đảm bảo bạn đang đặt độ cao 100% trên mọi thứ mặc dù DOM ..thấy http://api.fatherstorm.com/test/iframe.php

http://api.fatherstorm.com/test/iframe2.php

ví dụ với một trong hai trang nhúng (CNN) hoặc một hình ảnh

+0

OP đang tìm cách thay đổi kích thước hình ảnh theo chiều rộng của khung nội tuyến, ví dụ của bạn không làm - bởi vì không thể thực hiện khi sử dụng hình ảnh làm 'khung nội tuyến 'của khung nội tuyến. –

0

NẾU bạn có quyền truy cập đến hình ảnh tại địa phương và bạn có thể sử dụng các chức năng php GD ...

$img_rsrc = imagecreatefromjpeg($path_to_image); 
// or imagecreatefrompng, imagecreatefromgif, etc, depending on the type of your image 
$height = imagesy($img_rsrc); 
$width = imagesx($img_rsrc); 
imagedestroy($img_rsrc); 

Sau đó, đặt kích thước iframe của bạn bằng pixel dựa trên chiều cao và chiều rộng. Bạn có thể phải thêm một chút vào chiều cao và chiều rộng để tính tỷ suất lợi nhuận.

+0

Aah ... Tôi nghĩ nó hoạt động. Thật không may, nó không phải là Mike. Nếu hình ảnh đủ lớn, nó sẽ thêm cuộn vào toàn bộ trang của tôi chứ không chỉ là khung nội tuyến ... – 12345

+0

Một vấn đề khác mà tôi gặp phải là hình ảnh được thu nhỏ trong Firefox. Tôi cần phải nhấp vào hình ảnh trong khung nội tuyến để mở rộng hình ảnh ở kích thước đầy đủ. Nó hiển thị một cách chính xác trong Chrome và IE mặc dù. có cách sửa nào cho nó không? – 12345

+0

Đây là chức năng của Firefox, vì khung nội tuyến quá nhỏ để hiển thị toàn bộ hình ảnh. Tôi không biết cách nào để ngăn chặn điều này. Đối với nhận xét trước, tôi nghĩ bạn nên xem xét giải pháp JavaScript. –

4

sử dụng mã bên dưới để hiển thị hình ảnh.

<iframe frameborder="0" scrolling="no" width="100%" height="100%" 
    src="../images/eightball.gif" name="imgbox" id="imgbox"> 
    <p>iframes are not supported by your browser.</p> 
</iframe><br /> 


<a href="../images/redball.gif" target="imgbox">Red Ball</a><br /> 
<a href="../images/floatingball.gif" target="imgbox">Floating Ball</a><br /> 
<a href="../images/eightball.gif" target="imgbox">Eight Ball</a> 
Các vấn đề liên quan