根据维基百科关于Bookmarklets的文章(http://en.wikipedia.org/wiki/Bookmarklet),Bookmarklets的概念是:
Web浏览器将URI用于标记的href属性和书签.URI方案(例如http:,file:或ftp:)指定协议和字符串其余部分的格式.浏览器还实现了一个前缀javascript:对解析器来说就像任何其他URI一样.在内部,浏览器看到指定的协议是javascript,将字符串的其余部分视为JavaScript应用程序然后执行,并将结果字符串用作新页面.
它表示结果字符串用作新页面.那么这是否意味着浏览器的原始DOM不受该字符串的影响?但是,如果只将结果字符串用作新页面,我如何在现有DOM中更改或注入新的DOM元素?因为脚本提醒Hello或注入一些新的DOM元素并没有真正返回任何内容.他们有点在现有的DOM上工作.
现在,在Internet Explorer中,除了使用Bookmarklets在页面上执行一些JavaScript之外,我还可以编写一个BHO插件并按以下方式注入:
document = (HTMLDocument)webBrowser.Document;
var injectedJS = System.IO.File.ReadAllText("InjectedJS.js");
var window = document.parentWindow;
window.execScript("(function(){ " + injectedJS + " })()");
Run Code Online (Sandbox Code Playgroud)
同样在chrome中,我可以编写一个扩展来实现同样的目的:
var s = document.createElement('script');
s.src = chrome.extension.getURL("script.js");
s.onload = function() {
this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);
Run Code Online (Sandbox Code Playgroud)
这些有何不同?我所拥有的高级问题是:
execScript方法或在浏览器中使用javascript:protocol 执行JavaScript的方式有什么不同吗?javascript bho bookmarklet javascript-injection google-chrome-extension
我在Java中尝试使用Graphics2D.但像往常一样,我被困住了.:P问题是:假设我有这个代码,
Graphics2D g=(Graphics2D)(this.getGraphics()); //Inside a JFrame
g.rotate(Math.PI/8);
g.drawLine(10, 20, 65, 80);
//I want this one and all following lines to be drawn without any rotation
g.drawLine(120, 220, 625, 180);
Run Code Online (Sandbox Code Playgroud)
可能吗???我知道必须有某种方式,但我无法弄清楚.请帮忙.
我正在使用Windows 8.1 Metro应用程序.该应用程序为使用其Live帐户登录Windows的用户提供个性化体验.
如Windows中所提供的,任何用户都可以通过PC设置 - >帐户将其真实帐户连接/断开连接到PC.我的要求是在此事件中得到通知,即,每当用户将其真实账户连接/断开连接到PC时.现在,根据MSDN页面(http://msdn.microsoft.com/en-us/library/windows/apps/hh977056.aspx),此事件将触发OnlineIdConnectedStateChange.我能够在应用程序中实现一个监听触发器的后台任务,它工作得很好.每次在连接的Live帐户中发生更改时,都会触发事件侦听器.但是,如果用户使用某个真实帐户登录或从已连接的帐户注销,我无法确定这一事实.
我尝试使用Windows.Security.Authentication.OnlineId.OnlineIdAuthenticator(Metro App - 如何检测是否使用Live ID或本地帐户登录),但如果没有用户登录则会触发身份验证流程.这不是我想要的.我只是想知道有人登录或不登录的事实.我不想触发Auth流程.
在后台任务中触发OnlineIdConnectedStateChange事件时,有没有办法确定用户的登录/注销状态?
谢谢你的帮助.
我正在开展一个手势识别项目.有一个C程序从视频输入中捕获手势并将其写入文件.现在,我有一个用Python编写的图像查看器--GTK.它根据手势切换到下一个或上一个窗口.此连续文件读取和应用程序更新定义如下:
def ai(self):
if self.mtime!=os.stat("input.txt").st_mtime:
self.mtime=os.stat("input.txt").st_mtime
inp=open("input.txt", "r");
line=inp.read()
if len(line)!=0:
line=line[0:len(line)-1]
for x in line.split(' '):
y=x.split('-')
if(y[1]=="R"):
self.next()
print "Move Right"
elif(y[1]=="L"):
self.prev()
print "Move Left"
time.sleep(1)
print "WakeUp"
self.ai()
Run Code Online (Sandbox Code Playgroud)
现在如果我在这里注释掉递归调用,那么应用程序在读取当前文件和更新图像后工作.当然,之后它不会更新.
但是如果我取消注释递归调用,那么控制台会继续工作,但是图像查看器应用程序会停止响应.
有没有办法执行此功能?任何我可以绑定此ai()函数的事件,可以在每次触发该事件时检查文件更新...任何帮助将不胜感激.
bho ×1
bookmarklet ×1
c# ×1
events ×1
graphics2d ×1
gtk ×1
java ×1
javascript ×1
python ×1
swing ×1
windows-8.1 ×1