Opening html content in new tab from bookmarklet (Firefox) - firefox

I had a few bookmarklets that used a technique like:
javascript:(function(){open('data:text/html,'+encodeURIComponent('<!DOCTYPE html><html><head><title>Title</title></head><body><h1>Title</h1>Content</body></html>'))})()
This basically opens some text/html content in a new tab/window using a data url.
This technique apparently does not work anymore in Firefox 61.0.1 (haven't tested other versions). Is this a bug or by design?
A particular implementation using a javascript url doesn't appear to work either.
If this is by design, then is there any simple alternative other than opening a new tab and then writing the content afterwards?
Note: I believe this restriction does not apply to plain text content (possibly others).

Partial answer:
javascript:(function(){open('javascript:"'+encodeURIComponent('<!DOCTYPE html><html><head><title>Title</title></head><body><h1>Title</h1>Content</body></html>')+'"')})()
The above is a workaround. encodeURIComponent is useful if either double quotes or single quotes need to be escaped (but not both at the same time)

Related

how to enable Safari Extensions when using a web view

I am using a Web view in my application, instead of open a Safari browser instance, so I noticed that Safari extensions doesn't work. Is there a possibility to enable this feature when using a custom web view in a Cocoa Application?
The reason by which I need to use Safari extensions is to inject javascript to whatever web page is loaded at one moment, so if is there another approach to do it without using extensions, welcome any suggestions or samples.
There's no way to use Safari extensions in a web view.
If your script isn't too big, how about formatting it as a "javascript:" bookmarklet and setting the web view's location to it?
[Edit: Stuff below added in response to questioner's request for "a bit more about that technique".]
Say you want to change the background color of the page to yellow and all the text to red. The javascript to do that would be something like:
document.body.style.backgroundColor = "yellow";
document.body.style.color = "red !important";
To turn the script into a bookmarklet, you just:
Wrap it in an anonymous function,
remove all line breaks,
(optionally) remove any unnecessary spaces,
url-encode it,
and prefix the whole thing with "javascript:".
So, the example would become:
javascript:(function(){document.body.style.backgroundColor%3D%22yellow%22%3B%0Adocument.body.style.color%3D%22red%20!important%22%3B%0A}());
Then you can set the webview's window.location to that string to "run" the bookmarklet.
Here is a page with an automatic script to bookmarklet converter that seems to work.

Need to disable an automatic URL hyperlinking with XSL-FO when generating a PDF document?

I'm using Apache XSL-FO to generate a PDF document from an XML using XSLT. In my XSL file I have an fo:block where I bring a URL and simply display it like this:
xsl:value-of select="company_info/website"
My website always contains a valid URL for some company, starting with www.abc.com
It seems like that by default anything with a www is being recognized as a URL and becomes linkable. It does not seem like I can force the link of that company to load in a new window, as it always loads the page in the PDF window and that's not a desirable behavior. I am trying to find a way to disable to URL altogether so that it is not linkable and the only way I'm able to do it tight now is by inserting '-' on both ends of the URL: -www.abc.com- Is there a more elegant way to insert some kind of a special character that maybe is not visible?
This is probably not something that can be fixed from the XSLT/XSL-FO side of things (except by inserting extra characters, as you have done). It is the PDF viewer that interprets certain strings as clickable links.
In Adobe Reader, you can disable automatic recognition of links by unchecking the "Create links from URLs" check box (Preferences dialog: General->Basic tools). Foxit Reader has this option too.

Google Chrome escapes WYSIWYG Javascript

So my problem is relatively simple, I've Googled all over to find a solution but I've yet to find one.
The problem is, I've developed a WYSIWYG plugin for Drupal's WYSIWYG module/framework (not sure if this is relevant). The purpose of the plugin is to allow embedding of video files inside the WYSIWYG content. Our client offers a video uploading/editing API which their customers use to embed files on their pages.
To put it simply, my plugin opens up a pop-up where the user selects one of their videos as fetched from their account at the clients site, the plugin then calls the API and is returned with HTML and JavaScript for embedding the video which is then inserted into the WYSIWYG content.
This works like a charm in Firefox, however I have a few problems with it in Chrome. After debugging back and forth I've noticed that the embedded JavaScript inside the WYSIWYG editor gets escaped (IE, quotes turned into &quot etc).
This does not happen with Firefox so it's most likely Chrome which is causing it, or perhaps even Webkit?
I've already checked the HTML and JavaScript that gets returned through the Ajax call and it is fine, it's when it gets embedded inside the WYSIWYG it gets escaped.
The WYSIWYG editor I've tested in is TinyMCE by the way.
Adding as an answer for #tobbr to help other SO users:
i solved this by adding the script to a db table instead and then
loading it using drupal_add_js with hook_nodeapi. works better and
solves another IE related problem

Why is my firefox extension messing with another one's buttons?

I wrote a firefox extension which simply re-formats a page using some JQuery. But, it's interfering with another extension that places a button on the header panel of the browser. Now that button doesn't display. Can some one point me in the right direction as to when this happens. This is my first fire-fox extension.
Update:
The problem is actually being caused by the JQuery source file.
This is a known issue when using JQuery in the overlay.
Your update doesn't include valid chrome.manifest lines. Also, your original style line was totally wrong, and likely the cause of your problem. You should review this page which specifies the syntax to see how this should have been done.

How to disable the "auto format" feature of VisualStudio2008 editor?

When writing the HTML part of a page in a VS2008 Web App, the editor keeps formatting the HTML with linebreaks that break the readability of the code (to my eyes).
Can this feature be disabled?
Thanks
Have you tried Tools/Options/Text Editor/HTML ?
Tool/Options/
[Show all settings]
Text Editor/HTML
Wrap tags when exceeding specified lenght
If any interested.
You're probably looking at the Tag Wrapping option inside the Text Editor -> HTML options under the text editor settings. You can either disable it altogether or extend it beyond the 80 character default.
However, there is still some level of code reformatting that happens behind the scenes when you drag new controls into the page that I haven't found any solution to other than just staying in the text editor as much as possible.
Two good things to note: 1. VS2K8 does a MUCH better job that VS2K5 when it comes to formatting HTML. 2. With the new intellisense built into VS2K8, it makes it really easy to stay in the text editor while adding tags. I think I do most of my HTML stuff there now. You can keep your display in "split view" and just refresh every now and then to see how your controls are coming up.

Resources