Tôi đang cố gắng tải url trình duyệt hiện tại. Tôi đã thử với Cuộc gọi bên ngoài và nó không hoạt động. Và với loaderInfo.url tôi nhận được url SWF hiện tại.Nhận URL trình duyệt hiện tại - ActionScript 3
Trả lời
Tôi sẽ thử chuyển thông tin được yêu cầu dưới dạng flashvar. Không phải là giải pháp tốt nhất mà tôi biết, nhưng nó sẽ hoạt động.
tôi nghĩ rằng posible của nó sử dụng giao diện bên ngoài một làm điều đó với javascript window.location
này cung cấp cho một đi:
import flash.external.ExternalInterface;
var url:String = ExternalInterface.call("window.location.href.toString");
if (url) textfield.text = url;
nên làm các trick.
Có một số cách để giải quyết vấn đề này, tuy nhiên tất cả đều liên quan đến việc sử dụng JavaScript để truy vấn trực tiếp trình duyệt. Cách thức ưa thích của tôi để giải quyết vấn đề này là cung cấp URL thông qua thuộc tính flashVar, trực tiếp từ mã nhúng (cá nhân, tôi khuyên bạn nên sử dụng SWFObject để làm điều này dễ dàng hơn); đừng quên bạn sẽ cần phải URL Mã hóa nó để tránh các vấn đề đánh dấu.
var flashvars = {
browserURL: escape(location.href)
};
swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0", "expressInstall.swf", flashvars);
Bây giờ bạn sẽ có thể truy cập vào địa chỉ URL trình duyệt thông qua các đối tượng loaderInfo:
trace(stage.loaderInfo.parameters["browserURL"]);
lưu ý rằng điều này sẽ chỉ làm việc nếu bạn có quyền kiểm soát của HTML được tạo ra cho tập tin SWF của bạn - nếu người dùng sẽ lấy SWF và viết HTML nhúng riêng của họ, nó sẽ không hoạt động.
Nếu bạn không có quyền kiểm soát HTML nhúng HTML, thì bạn sẽ cần nhận flash để truy vấn trình duyệt khi chạy bằng lớp ExternalInterface; người khác đã gợi ý việc sử dụng "window.location.href.toString" tuy nhiên điều này có thể chứng minh vấn đề trong IE6, tôi thấy các công việc sau cách đáng tin cậy trên tất cả các trình duyệt
const browserURL : String = ExternalInterface.call("eval", "window.location.href");
Lưu ý rằng để cho tiện làm việc, bạn sẽ cần cấp quyền truy cập JavaScript cho phim Flash của bạn, điều này được thực hiện, một lần nữa, thông qua mã nhúng HTML và allowScriptAccess param
var url:String = loaderInfo.loaderURL;
dường như cũng hoạt động.
Tôi đã sử dụng đèn flash trong một thời gian dài và không bao giờ nhận thấy điều này. Nó chỉ cung cấp cho các miền mặc dù cho an ninh. Nó cũng hoạt động thông qua các swfs đã tải. Không chắc chắn về iframe.
Security.pageDomain
- 1. Lấy URL hiện tại trong trình duyệt Android
- 2. Java HttpServletRequest nhận URL trong trình duyệt URL bar
- 3. FreeMarker - Nhận URL hiện tại
- 4. Eclipse và Actionscript 3
- 5. actionscript 3 init()
- 6. actionscript 3 và JSON
- 7. Nhận URL trang chủ đầy đủ tại Kohana 3
- 8. Phát hiện rò rỉ bộ nhớ trong ActionScript-3 Project
- 9. Nhận URL hiện tại trong Python
- 10. Silverlight 3 - Thoát khỏi trình duyệt HtmlPage.Window.Navigate
- 11. Gỡ lỗi Haxe (ActionScript 3)
- 12. Tải hình ảnh hồ sơ từ Facebook bằng Actionscript 3
- 13. Nhận url từ iframe và cập nhật băm trong url trình duyệt
- 14. Actionscript 3: lấy đối tượng hiển thị tại pixel
- 15. Nhận url của đường dẫn hiện tại trong Terminal SSH
- 16. Trình duyệt giải thích '& không' trong URL
- 17. Mở tệp hiện tại trong trình duyệt web trong Vim
- 18. Giao tiếp giữa C++ và ActionScript 3
- 19. trình duyệt phát hiện
- 20. Trình duyệt hiện tại có chấp nhận cookie từ phản hồi ajax không?
- 21. Nhận URL hiện tại bằng cách sử dụng Jquery
- 22. phân trang wordpress nhận số trang hiện tại từ url
- 23. Cách nhận URL trang hiện tại trong chế độ xem?
- 24. Nhận URL hiện tại trong IE Sử dụng Visual Basic
- 25. Công cụ tạo mẫu Twig: nhận url hiện tại
- 26. Làm thế nào để tôi nhận được từ một thể hiện của một lớp đối tượng Class trong ActionScript 3?
- 27. Đặc tả ActionScript 3 dưới dạng PDF?
- 28. Actionscript 3 ExternalInterface, Biến biến thành javascript?
- 29. Lấy kích thước của ActionScript 3 Dictionary
- 30. Thoát khỏi trình duyệt hiện tại (trả về một cấp)
Vấn đề duy nhất với kỹ thuật này là Flash sẽ chia nhỏ một số url thành các biến riêng lẻ. Điều này xảy ra với GET URL, ví dụ: * .com? One = 1 & two = 2. Vì vậy, hãy ghi nhớ điều đó! –
@TylerEgeto bạn có thể khắc phục điều đó bằng cách mã hóa URL với các ký tự đặc biệt HTML – Tchakabam