Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
是否有看到有的網站進入網站就會彈出網站公告提示框,今天飛飛和你們分享打開網站就彈出網站公告提示框的JS彈窗代碼,希望可以幫到你~
<script language="javascript">alert('我是飛飛,可以通過【服務器大本營】相識是一種緣分,希望通過我的分享可以讓你更多的了解服務器,當然有服務器需求的朋友可以加微信:137 5120 9102~域名速記:【服務器大本營】首拼.com')</script>
直接復制JS代碼,粘貼到首頁文件,或者需要彈出的頁面即可
近在做項目的時候碰到了使用window.open被瀏覽器攔截的情況, 在本機實驗沒問題, 到了服務器就被攔截了, 火狐有攔截提示, 360瀏覽器攔截提示都沒有, 雖然在自己的環境可以對頁面進行放行,
另外, 可以發現, 當window.open為用戶觸發事件內部或者加載時, 不會被攔截, 一旦將彈出代碼移動到ajax或者一段異步代碼內部, 馬上就出現被攔截的情況了。
使用了一個可定制彈出窗口的外觀、尺寸大小、彈出位置以適應該頁面的window.open()方法, 代碼如下:
<!--
window.open ('page.html','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no')
//寫成一行
-->
參數解釋:
window.open 彈出新窗口的命令;
page.html 彈出新窗口的文件名;
newwindow 彈出窗口的名字(不是文件名), 可用空''代替;
height=100 窗口高度;
top=0 窗口距離屏幕上方的像素值;
left=0 窗口距離屏幕左側的像素值;
toolbar=no 是否顯示工具欄,yes為顯示;
menubar,scrollbars 表示菜單欄和滾動欄;
resizable=no 是否允許改變窗口大小,yes為允許;
location=no 是否顯示地址欄,yes為允許;
status=no 是否顯示狀態欄內的信息(通常是文件已經打開),yes為允許;
原因分析
當瀏覽器檢測到非用戶操作產生的新彈出窗口, 則會對其進行阻止。因為瀏覽器認為這可能是一個廣告, 不是一個用戶希望看到的頁面。
解決方案:
1、使用a標簽替代
給出如下函數, 將此函數綁定到click的事件回調中, 就可以避免大部分瀏覽器對窗口彈出的攔截:
function newWin(url, id) {
var a = document.createElement('a');
a.setAttribute('href', url);
a.setAttribute('target', '_blank'); // 這里可以改為top, 防止彈出多個窗口
a.setAttribute('id', id);
// 防止反復添加
if(!document.getElementById(id)) {
document.body.appendChild(a);
}
a.click();
}
2、使用form的submit方法打開一個頁面
這種方法需要構造一個from, 然后由js代碼觸發form的submit, 將表單提交到一個新的頁面, 如:
$("#ID").attr('target', '_blank');
$("#ID").submit();
大家注意, 以上兩種方法不適合放在ajax的回調函數中, 如果放在回調函數中, 依然會被瀏覽器攔截。
3、終極解決方案–先彈出窗口, 然后重定向
第三種方案, 其實是一種變通方案, 核心思想是: 先通過用戶點擊打開頁面, 然后再對頁面進行重定向。示例代碼如下:
xx.addEventListener('click', function () {
// 打開頁面,此處最好使用提示頁面
var newTab=window.open('about:blank');
ajax().done(function() {
// 重定向到目標頁面
newWin.location.href = 'target url';
});
});
以上方法其實是打開了兩個地址, 所以建議大家打開第一個地址的時候給出一個類似'當前頁面正在加載中,請稍后。。'的簡單提示頁, 這樣可以避免打開兩次真正的目標頁面, 讓用戶察覺到頁面的重定向。
補充:
JS打開新窗口的2種方式
1.超鏈接
<ahref="http://www.xxxxxx.com" title="標題">Hello world</a>
等效于js代碼
window.location.href="http://www.xxxxxx.com"; //在同當前窗口中打開窗口
2.超鏈接
<a href="http://www.xxxxxx.com" title="標題" target="_blank">Hello world</a>
等效于js代碼
window.open("www.xxxxxx.com"); //在另外新建窗口中打開窗口
3、關閉新窗口:
擊右上方紅色按鈕關注“小鄭搞碼事”,每天都能學到知識,搞懂一個問題!
大家好!我是/小鄭搞碼事/的小鄭
今天和大家分享一下JS如何操作瀏覽器窗口。只講如何打開一個新窗口
先來看效果圖
上面這個圖界面效果就是我們要實現的。
我們常常需要創建一個新窗口,用來向用戶顯示額外的信息,同時又避免他們正在閱讀的信息消失。從實現方案上來看,盡管我們可以用HTML打開一個新的瀏覽器窗口,但是使用JavaScript可以對新窗口的內容和特性進行更多的控制。
接下來,我們看一下怎么實現的
定義一個打開新窗口的函數newWindow。如上面代碼所示,變量catWindow包含一個新的窗口對象,這個對象引用圖像文件icon.png,這個新窗口的名稱是catWin,必須設置名稱,因為我們以后可能希望在a或另一個腳本中引用這個窗口。新窗口的寬度是350像素,高度是260像素,位置是左邊400,上邊400。
頁面中,包含一個onload事件處理程序,它調用newWinLinks函數,newWinLinks循環遍歷頁面上的a,檢查是否有任何a包含class屬性值newWin。如果有,就設置這個a元素的onclick事件處理程序,從而,當點擊這個a時,調用newWindow函數。
總結一下
需要注意兩個地方:
1、newWindow中,在寬度和高度參數中的逗號之間不能有任何空格,如果有空格,那么腳本可能在某些瀏覽器中無效,總地來說,當腳本出現錯誤,需要進行高度時,要首先查找這樣的小問題。
2、比如向窗口中添加參數時,希望窗口具有工具欄,地址欄,滾動條
toolbar=yes,location=yes,scrollbars=yes
參數默認是no,可以不填。當然瀏覽器上表現也有不同,需要知道。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。