我有一个书签打开我的谷歌日历页面(http://www.google.com/calendar/renderOnline)和一个应用了一些javascript的书签:
的javascript:的document.getElementById( 'gadgetcell')的setAttribute( '风格', '宽度:300像素'); document.getElementsByClassName( 'SN-帧')[0] .setAttribute( '风格',“宽度: 300像素');
有没有办法将这些组合成一个书签,这样我就不必一直点击两次?
谢谢!
答案 0 :(得分:1)
没有。 bookmarklet在原始页面的上下文中运行,因此它无法更改页面并继续运行。如果您始终希望在页面上运行该代码,则可能会发现GreaseMonkey有用。或者,Stylish允许您将用户样式应用于页面。
答案 1 :(得分:0)
您可以使用扩展程序来获得相同的行为。
例如,在Safari中,您将创建一个启动URL的按钮和一个运行您的书签的注入脚本。 GreaseMonkey和许多其他扩展框架可以做类似的事情。
答案 2 :(得分:0)
我曾考虑使用书签来执行此操作:
javascript:location.href='http://google.com';setTimeout(function(){alert('hi');},2000);
setTimeout函数可以是任何东西,并且由于2秒计时器,页面将有时间加载并且任意代码将针对它执行。但它没有用。无论我试图在setTimeout中调用什么函数,它都只是从不执行,或者它可能在其他一些空间中执行,这些空间在加载新页面时会被销毁或类似的东西。只要没有location.href改变,setTimeout代码就可以作为bookmarklet使用。
但是,我想知道是否更好的方法是将所需页面的AJAX加载到当前空间中,然后尝试执行某些操作。如果我开始尝试,我会在这里更新。