JolinM Posted March 18, 2013 Posted March 18, 2013 Hi, I am trying to trigger the instapaperizing action from Alfred. I seted up a hotkey, followed by either a run script action or an open page in browser, with this code inside, but nothing seams to work… any clue? Thanks! javascript:function%20iptxt()%7Bvar%20d%3Ddocument%3Btry%7Bif(!d.body)throw(0)%3Bwindow.location%3D%27http://www.instapaper.com/text%3Fu%3D%27%2BencodeURIComponent(d.location.href)%3B%7Dcatch(e)%7Balert(%27Please%20wait%20until%20the%20page%20has%20loaded.%27)%3B%7D%7Diptxt()%3Bvoid(0)
jdfwarrior Posted March 18, 2013 Posted March 18, 2013 Hi, I am trying to trigger the instapaperizing action from Alfred. I seted up a hotkey, followed by either a run script action or an open page in browser, with this code inside, but nothing seams to work… any clue? Thanks! javascript:function%20iptxt()%7Bvar%20d%3Ddocument%3Btry%7Bif(!d.body)throw(0)%3Bwindow.location%3D%27http://www.instapaper.com/text%3Fu%3D%27%2BencodeURIComponent(d.location.href)%3B%7Dcatch(e)%7Balert(%27Please%20wait%20until%20the%20page%20has%20loaded.%27)%3B%7D%7Diptxt()%3Bvoid(0) I'm assuming that you are just trying to "open" this? I would assume that OSX probably doesn't know how to handle that because javascript exists in the browser and not OS-wide. You can still do it though. Try this instead. tell application "Safari" to do JavaScript "javascript:function iptxt(){var d=document;try{if(!d.body)throw(0);window.location='http://www.instapaper.com/text?u='+encodeURIComponent(d.location.href);}catch(e){alert('Please wait until the page has loaded.');}}iptxt();void(0)" in the current tab of the front window That triggers the javascript to run in the current tab of the front window in Safari (assuming that's what your using). We may have to tweak it a little bit if you aren't using Safari but I would think it would still be possible in the other browsers.
JolinM Posted March 18, 2013 Author Posted March 18, 2013 Woohoo, thanks for the help, it works and I figured out how to do it with Chrome! http://d.pr/f/cp39
jdfwarrior Posted March 20, 2013 Posted March 20, 2013 Woohoo, thanks for the help, it works and I figured out how to do it with Chrome! http://d.pr/f/cp39 Awesome, happy to help. If you haven't already, be sure to share it in the Share Your Workflows area.
Saez Posted April 9, 2021 Posted April 9, 2021 The link expired. How can I trigger a javascript on Alfred to run it on Safari at the same page? javascript:(function()%7B(function%20()%20%7Bvar%20i%2C%20elements%20%3D%20document.querySelectorAll('body%20*')%3Bfor%20(i%20%3D%200%3B%20i%20%3C%20elements.length%3B%20i%2B%2B)%20%7Bif%20(getComputedStyle(elements%5Bi%5D).position%20%3D%3D%3D%20'fixed')%20%7Belements%5Bi%5D.parentNode.removeChild(elements%5Bi%5D)%3B%7D%7D%7D)()%7D)()
deanishe Posted April 10, 2021 Posted April 10, 2021 8 hours ago, Saez said: The link expired. How can I trigger a javascript on Alfred to run it on Safari at the same page? javascript:(function()%7B(function%20()%20%7Bvar%20i%2C%20elements%20%3D%20document.querySelectorAll('body%20*')%3Bfor%20(i%20%3D%200%3B%20i%20%3C%20elements.length%3B%20i%2B%2B)%20%7Bif%20(getComputedStyle(elements%5Bi%5D).position%20%3D%3D%3D%20'fixed')%20%7Belements%5Bi%5D.parentNode.removeChild(elements%5Bi%5D)%3B%7D%7D%7D)()%7D)() As described above:
Saez Posted April 10, 2021 Posted April 10, 2021 O try to follow it but, I'm sorry, I couldn't get success. Step-by-step I tap to add a new one > Template > Essentials > Keyword to Script. In fact, I will add a hotkey to run on Safari "Control+Option+Command+K" in any website but it's not working.
deanishe Posted April 10, 2021 Posted April 10, 2021 30 minutes ago, Saez said: but it's not working We can't possibly tell you what's wrong from such a description. Please upload your workflow somewhere (Dropbox?) and post a link, so we can see for ourselves what the workflow is doing.
Saez Posted April 10, 2021 Posted April 10, 2021 Take a look. I thought could be so simple but I know it's wrong. https://www.dropbox.com/s/xbx3pr8rze3zb8i/Kill Sticky.alfredworkflow?dl=0
deanishe Posted April 10, 2021 Posted April 10, 2021 You have it set to the wrong language. That’s AppleScript, so you need Language = /usr/bin/osascript (AS) You also got the AppleScript wrong. It’s tell application "Safari" to do JavaScript "<JS code goes here>" in the current tab of the front window (like in the post I linked you to.) Finally, there’s actually no need to use javascript: and URL-encode the JavaScript. You’re telling the browser to execute code, not open a URL. I'd provide you with a working version, but I'm afraid I don't understand what the JS is supposed to do or where.
Saez Posted April 10, 2021 Posted April 10, 2021 I really thank you and I'm keep trying to understand how it works in fact. Look at this site: https://alisdair.mcdiarmid.org/kill-sticky-headers/ That's what this JS do. So, today I have it in my favorite bar and just a tap works fine and I remember Alfred can run JS with a hotkey so I tried again and again and again hahaha (... and still trying)
deanishe Posted April 10, 2021 Posted April 10, 2021 (edited) You can paste that code as-is into your AppleScript: tell application "Safari" to do JavaScript "(function () { var i, elements = document.querySelectorAll('body *'); for (i = 0; i < elements.length; i++) { if (getComputedStyle(elements[i]).position === 'fixed') { elements[i].parentNode.removeChild(elements[i]); } } })();" in the current tab of the front window A slightly shorter version that does the same thing: tell application "Safari" to do JavaScript "(function() {document.querySelectorAll('body *').forEach(el => { if (getComputedStyle(el).position === 'fixed') el.remove(); }) })();" in the current tab of the front window Edited April 10, 2021 by deanishe
Saez Posted April 10, 2021 Posted April 10, 2021 I tried and it's not working on Safari, it works there? I think now it's right, isn't it? (btw, I didn't paid attention on the language before)
Saez Posted April 10, 2021 Posted April 10, 2021 Forget it friend! I found the error on the log Quote [11:46:41.831] ERROR: Kill Sticky[Run Script] /Users/gustavosaez/Library/Caches/com.runningwithcrayons.Alfred/Workflow Scripts/C01C00E4-0A67-4A64-962F-376AB4B122A8:29:332: execution error: Safari got an error: You must enable the 'Allow JavaScript from Apple Events' option in Safari's Develop menu to use 'do JavaScript'. (8) Now, allowed, it worked. Thank you so much!!!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now