19
Chúng tôi có chức năng JavaScript có tên là "di chuyển", chỉ có "windows.location.href = bất kỳ anchor nào được cho là".
Chức năng này hoạt động trên IE, Opera và Safari, nhưng bằng cách nào đó bị bỏ qua trong Firefox. Nghiên cứu trên Google không tạo ra câu trả lời thỏa đáng lý do tại sao nó không hoạt động.
Có bất kỳ chuyên gia JavaScript nào biết về hành vi này hay không và thực hành nào tốt nhất để chuyển sang một liên kết qua JavaScript?windows.location.href không hoạt động trên Firefox3
Tôi chỉ cố gắng thiết lập "window.location.href" trên trang thử nghiệm w3school và nó làm việc. Bạn có chắc chắn không có gì khác có thể gây ra vấn đề? http://www.w3schools.com/js/tryit.asp?filename=tryjs_location –
Cảm ơn bài đăng của bạn. Vâng, tôi đã cố gắng đơn giản hóa kịch bản. Toàn bộ hình ảnh là chúng ta gọi javascript từ Response.Write, trong một sự kiện đến từ một mạng lưới DevExpress. Đó sẽ là bối cảnh toàn bộ vấn đề. Việc thử chỉ với window.location không hoạt động. –
không chắc chắn nếu tôi nhận được điều này "gọi nó từ Response.Write" bit. Nếu bạn đang "echo" -ing nó vào đầu ra, gói trong một thẻ
Tôi không chắc chắn sẽ theo bạn.
Tôi vừa thử: đi với FF3 đến Lua 5.1 Reference Manual (dài và có nhiều neo).
Đang dán
javascript:window.location.href="#2.5"; alert(window.location.href);
vào thanh địa chỉ, tôi đã đi tới thanh neo bên phải và nó hiển thị đúng URL. Hoạt động cũng với một URL đầy đủ, tất nhiên.Mã thay thế:
javascript:(function() { window.location.href="#2.5"; })();
Có thể bạn đã quên #. Vấn đề thường gặp, cũng với bản đồ hình ảnh.
Nguồn
2008-11-08 19:57:42 PhiLho
Cảm ơn bài đăng của bạn. Tôi cũng cài đặt # char. Bạn có thể thử mà không có câu "cảnh báo" không? Nếu tôi đặt một cảnh báo, bằng cách nào đó nó hoạt động, nếu tôi loại bỏ nó, nó không. –
Nếu bạn xóa nó trong bookmarklet, bạn phải thay thế nó bằng void (0) hoặc đặt toàn bộ nội dung trong một cuộc gọi hàm: bookmarklet không được có giá trị cuối cùng. – PhiLho
Bạn cũng có thể sử dụng
window.location.replace
để chuyển đến một neo mà không cần đăng ký nó trong lịch sử trình duyệt:article này minh họa làm thế nào để nhảy đến một neo và sử dụng href như chỉ đọc tài sản.
Nguồn
2008-11-08 20:02:40 VonC
Tại sao không chỉ 'window.location.hash =" 1 "'? Tất cả các thay thế và tước có vẻ không cần thiết. –
window.location.href hoạt động tốt trong tất cả các phiên bản của Firefox, cũng như document.location.href Tôi nghĩ rằng có cái gì đó khác trong mã của bạn cũng được phá vỡ mọi thứ.
thả trang này vào trang trống, nếu nó hoạt động, nó cho biết có điều gì đó sai trên trang của bạn.
Nguồn
2008-11-08 20:56:53 scunliffe
Bạn đã thử cái này chưa?
Nguồn
2008-11-08 22:39:39
Có lẽ nó chỉ là một lỗi đánh máy trong bài viết của bạn và không có trong mã của bạn, nhưng nó cửa sổ và không cửa sổ s
Nguồn
2008-11-08 23:17:31 vincent
Tôi có cùng một vấn đề và tôi đoán đây có liên quan đến a nhấp vào sự kiện.
Tôi có chức năng di chuyển trình duyệt đến một trang cụ thể. Tôi đính kèm chức năng đó vào một số sự kiện nhấp chuột: trong một nút và trong một hình ảnh. AlsoI thực hiện chức năng khi người dùng nhấn thoát (tài liệu onkeypress event).
Kết quả là trong mọi trường hợp, hàm được gọi và được thực thi, nhưng chỉ khi có một nhấp chuột, trình duyệt chuyển đến địa chỉ tôi muốn.
Cập nhật Tôi hiểu rồi! với một
Tôi không biết lý do tại sao location.replace không hoạt động khi sự kiện này là một phím nhấn, nhưng với setTimeout nó hoạt động :)
Cập nhật Trở sai sau sự kiện khi bạn nhấn thoát khiến cho việc chuyển hướng hoạt động. Nếu bạn trở thành sự thật hoặc không có gì trình duyệt sẽ không làm theo
Nguồn
2008-11-28 11:09:08 graffic
Một tùy chọn khác:
Nguồn
2008-11-28 15:57:30 serg
Nguồn
2008-12-23 21:47:45
Nếu bạn đang cố gắng gọi mã javascript này sau khi một sự kiện được theo sau bởi một callback sau đó bạn phải thêm một dòng khác để chức năng của bạn:
trong đánh dấu của bạn cho trang, sự kiểm soát mà các cuộc gọi chức năng này trên nhấp chuột phải trả lại giá trị của chức năng này
Giá trị trả về false sẽ hủy cuộc gọi lại và chuyển hướng hiện sẽ hoạt động. Tại sao điều này làm việc trong IE? Vâng, tôi đoán họ đã suy nghĩ khác nhau về vấn đề này khi họ ưu tiên chuyển hướng qua cuộc gọi lại.
Hy vọng điều này sẽ hữu ích!
Nguồn
2009-08-26 13:50:52 sprite
cảm ơn! vấn đề này đã khiến tôi phát điên lên cho đến khi tôi tìm thấy điều này! +1 cho bạn để tiết kiệm chân tóc của tôi. –
Cảm ơn vì điều này, đã cứu tôi một thời gian. IE6 luôn cần một cú đá đặc biệt trong quần. – Yoshi
! +1 Cảm ơn nó đã giải quyết được sự cố của tôi – SivaRajini
xin vui lòng thêm đầy đủ thẻ script javascript
Nguồn
2010-02-10 12:34:18
Thực sự không cần sử dụng ngôn ngữ = "javascript" nữa .. – Amalgovinus
Bạn đã có thêm return false; sau window.location.href như đã đề cập ở trên.
Nguồn
2010-03-23 03:41:52
Để tham khảo, tôi có cùng một vấn đề.
onclick = "javascript: window.location ('example.html');" không hoạt động theo FF (mới nhất)
Tôi chỉ phải viết lại thành onclick = "javascript: window.location = 'example.html';" để làm cho nó hoạt động
Nguồn
2012-07-29 20:51:25
Tôi vừa khắc phục cùng một vấn đề. và vấn đề không phải là trong javascript, nhưng thuộc tính href trên phần tử
<a>
.mã js của tôi
html trước đây của tôi là
và tôi cập nhật nó để
hoặc loại bỏ các thuộc tính href
hy vọng điều này giúp.
Nguồn
2012-10-09 06:30:18
Một quan sát để đảm bảo trong một kịch bản như vậy
Tiếp theo sẽ làm việc trong
IE
, nhưng không phải trongChrome
cũng không phải trongFirefox
(các phiên bản tôi thử nghiệm)Tiếp theo sẽ làm việc tất cả các ba
Nguồn
2012-12-20 12:26:47 Lijo
đôi khi nếu bạn đang sử dụng biểu mẫu để đăng dữ liệu, điều này có thể xảy ra. nếu bạn đang sử dụng ajax, hãy thử thay đổi 'form' thành 'div'. điều này sẽ ngăn chặn hành vi mặc định của biểu mẫu và làm mã ajax của bạn.
Nguồn
2013-08-16 04:15:24 libra
window.location.assign ("liên kết đến trang tiếp theo") sẽ hoạt động trong cả hai trình duyệt (chrome và firefox).
Nguồn
2016-11-30 06:59:02 VikasChauhan