这是我尝试过的。我相信,恐怖分子不会为链接和脚本工作。我不太确定。
基本上,我想要达到的目标是。当浏览器无法加载某些资产时,我将重新加载该网页。不幸的是,我的第一步(脚本)不起作用。
var link = document.getElementsByTagName('link'),
img = document.getElementsByTagName('img'),
js = document.getElementsByTagName('script');
function chk_error(e){
for(var i = 0; i < e.length; i++){
e[i].onerror = function(){
alert('Failed.'); // doesn't alert even there's error
}
}
}
chk_error(link);
chk_error(img);
chk_error(js);
和
[].forEach.call(document.querySelectorAll('link, img, script'), function(e){
e.onerror = function(){
alert('reload'); // doesn't alert. not working.
}
});
注意: I don't use jQuery library with this project.
另一种选择是在控制台中访问错误长度,但我不知道如何获取它。我现在不认为这是可能的。
由于某些原因,该项目专注于Google Chrome。
也许有人对我有更好的想法或建议。任何帮助,将不胜感激。感谢。
答案 0 :(得分:0)
通过内联onerror =&#34; location.reload()&#34;解决了这个问题。希望img,链接,脚本。我认为它也很有用。所以,如果有人需要相同的功能。我就是这样做的。
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" onerror="location.reload()">
<img src="images/logo.png" onerror="location.reload();">
<script src="js/tweenmax.js" onerror="location.reload()"></script>
丑陋但它对我有用。如果有人有更好的想法。请回答。谢谢。
编辑2:
[].forEach.call(document.querySelectorAll('link, img, script'), function(e){
e.setAttribute('onerror', 'location.reload()');
});
比第一个好多了。这仅在脚本位于链接前的头顶时才有效。
答案 1 :(得分:0)
您应该在import tkinter as tk
import pandas as pd
import sqlite3
root = tk.Tk()
class Drag_and_Drop_Listbox(tk.Listbox):
""" A tk listbox with drag'n'drop reordering of entries. """
def __init__(self, master, **kw):
kw['selectmode'] = tk.EXTENDED
tk.Listbox.__init__(self, master, kw)
self.bind('<Button-1>', self.setCurrent)
self.bind('<B1-Motion>', self.shiftSelection)
self.curIndex = None
def setCurrent(self, event):
self.curIndex = self.nearest(event.y)
def shiftSelection(self, event):
i = self.nearest(event.y)
if i < self.curIndex:
x = self.get(i)
self.delete(i)
self.insert(i+1, x)
self.curIndex = i
elif i > self.curIndex:
x = self.get(i)
self.delete(i)
self.insert(i-1, x)
self.curIndex = i
def update_ordering(*args):
connect = sqlite3.connect('db.sqlite')
cursor = connect.cursor()
field_ordering = [(order,fruit) for order,fruit in enumerate(ddlistbox.get(0, 'end'))]
print(field_ordering)
for field in field_ordering:
cursor.execute("UPDATE columns SET 'ordering'="+str(field[0])+" WHERE fruit='"+field[1]+"';")
connect.commit()
connect.close()
print(ddlistbox.curselection())
scrollbar = tk.Scrollbar(root, orient="vertical")
ddlistbox = Drag_and_Drop_Listbox(root, yscrollcommand=scrollbar.set, activestyle='none')
scrollbar.grid(row=0, column=1, sticky='ns')
scrollbar.config(command=ddlistbox.yview)
conn = sqlite3.connect('db.sqlite')
conn.row_factory = lambda cursor, row: row[0]
cursor = conn.cursor()
fetch = cursor.execute("SELECT fruit FROM columns ORDER BY ordering ASC").fetchall()
for field in fetch:
ddlistbox.insert(tk.END, field)
ddlistbox.config(width=30)
ddlistbox.grid(row=0, column=0)
button = tk.Button(root, text='Check', command=update_ordering)
button.grid(row=1, column=0)
root.mainloop()
调用之前定义错误触发器功能!我的计算机中有两次警报,因为onerror
和js/tweenmax.js
不存在。
djffjds.jpg