Sofiaml Boo

Sofiaml Boo

1588630020

How to Create a Screenshot with JavaScript and HTML

Generate a screenshot using HTML and JavaScript, yeah that is what I meant.

Procedure

Step 1

You need an HTML page with some JavaScript code and CSS. That’s all we need.

Create an HTML file just like this:

<html lang="en">    
<head>    
    <title>Take Web Page Screenshot with HTML5 and JavaScript </title>    
</head>    
<body>    
    <a class="btn btn-success" href="javascript:void(0);" onclick="generate();">Generate    
        Screenshot »</a>        
</body>    
</html>  

Step 2

If you want, you can create some styles and apply them.

Now it’s time to create the JavaScript function generate() that I specified in an tag.

<script type="text/javascript">    
        (function (exports) {    
            function urlsToAbsolute(nodeList) {    
                if (!nodeList.length) {    
                    return [];    
                }    
                var attrName = 'href';    
                if (nodeList[0].__proto__ === HTMLImageElement.prototype || nodeList[0].__proto__ ===         
                 HTMLScriptElement.prototype) {    
                    attrName = 'src';    
                }    
                nodeList = [].map.call(nodeList, function (el, i) {    
                    var attr = el.getAttribute(attrName);    
                    if (!attr) {    
                        return;    
                    }    
                    var absURL = /^(https?|data):/i.test(attr);    
                    if (absURL) {    
                        return el;    
                    } else {    
                        return el;    
                    }    
                });    
                return nodeList;    
            }    
    
            function screenshotPage() {    
                urlsToAbsolute(document.images);    
                urlsToAbsolute(document.querySelectorAll("link[rel='stylesheet']"));    
                var screenshot = document.documentElement.cloneNode(true);    
                var b = document.createElement('base');    
                b.href = document.location.protocol + '//' + location.host;    
                var head = screenshot.querySelector('head');    
                head.insertBefore(b, head.firstChild);    
                screenshot.style.pointerEvents = 'none';    
                screenshot.style.overflow = 'hidden';    
                screenshot.style.webkitUserSelect = 'none';    
                screenshot.style.mozUserSelect = 'none';    
                screenshot.style.msUserSelect = 'none';    
                screenshot.style.oUserSelect = 'none';    
                screenshot.style.userSelect = 'none';    
                screenshot.dataset.scrollX = window.scrollX;    
                screenshot.dataset.scrollY = window.scrollY;    
                var script = document.createElement('script');    
                script.textContent = '(' + addOnPageLoad_.toString() + ')();';    
                screenshot.querySelector('body').appendChild(script);    
                var blob = new Blob([screenshot.outerHTML], {    
                    type: 'text/html'    
                });    
                return blob;    
            }    
    
            function addOnPageLoad_() {    
                window.addEventListener('DOMContentLoaded', function (e) {    
                    var scrollX = document.documentElement.dataset.scrollX || 0;    
                    var scrollY = document.documentElement.dataset.scrollY || 0;    
                    window.scrollTo(scrollX, scrollY);    
                });    
            }    
    
            function generate() {    
                window.URL = window.URL || window.webkitURL;    
                window.open(window.URL.createObjectURL(screenshotPage()));    
            }    
            exports.screenshotPage = screenshotPage;    
            exports.generate = generate;    
        })(window);    
    </script>   

Complete Code

Screenshot.html

<html lang="en">    
<head>    
    <title>Take Web Page Screenshot with HTML5 and JavaScript </title>    
</head>    
<body>    
    <a class="btn btn-success" href="javascript:void(0);" onclick="generate();">Generate    
        Screenshot »</a>    
    <script type="text/javascript">    
        (function (exports) {    
            function urlsToAbsolute(nodeList) {    
                if (!nodeList.length) {    
                    return [];    
                }    
                var attrName = 'href';    
                if (nodeList[0].__proto__ === HTMLImageElement.prototype || nodeList[0].__p                   roto__ === HTMLScriptElement.prototype) {    
                    attrName = 'src';    
                }    
                nodeList = [].map.call(nodeList, function (el, i) {    
                    var attr = el.getAttribute(attrName);    
                    if (!attr) {    
                        return;    
                    }    
                    var absURL = /^(https?|data):/i.test(attr);    
                    if (absURL) {    
                        return el;    
                    } else {    
                        return el;    
                    }    
                });    
                return nodeList;    
            }    
    
            function screenshotPage() {    
                urlsToAbsolute(document.images);    
                urlsToAbsolute(document.querySelectorAll("link[rel='stylesheet']"));    
                var screenshot = document.documentElement.cloneNode(true);    
                var b = document.createElement('base');    
                b.href = document.location.protocol + '//' + location.host;    
                var head = screenshot.querySelector('head');    
                head.insertBefore(b, head.firstChild);    
                screenshot.style.pointerEvents = 'none';    
                screenshot.style.overflow = 'hidden';    
                screenshot.style.webkitUserSelect = 'none';    
                screenshot.style.mozUserSelect = 'none';    
                screenshot.style.msUserSelect = 'none';    
                screenshot.style.oUserSelect = 'none';    
                screenshot.style.userSelect = 'none';    
                screenshot.dataset.scrollX = window.scrollX;    
                screenshot.dataset.scrollY = window.scrollY;    
                var script = document.createElement('script');    
                script.textContent = '(' + addOnPageLoad_.toString() + ')();';    
                screenshot.querySelector('body').appendChild(script);    
                var blob = new Blob([screenshot.outerHTML], {    
                    type: 'text/html'    
                });    
                return blob;    
            }    
    
            function addOnPageLoad_() {    
                window.addEventListener('DOMContentLoaded', function (e) {    
                    var scrollX = document.documentElement.dataset.scrollX || 0;    
                    var scrollY = document.documentElement.dataset.scrollY || 0;    
                    window.scrollTo(scrollX, scrollY);    
                });    
            }    
    
            function generate() {    
                windowwindow.URL = window.URL || window.webkitURL;    
                window.open(window.URL.createObjectURL(screenshotPage()));    
            }    
            exports.screenshotPage = screenshotPage;    
            exports.generate = generate;    
        })(window);    
    </script>    
</body>    
</html>   

Happy coding!

#javascript #html #css

What is GEEK

Buddha Community

How to Create a Screenshot with JavaScript and HTML

Kannan BS

1588696195

hai

Kannan BS

1588696195

hai

Jake King

1614747045

Looks like you copied the orginal post without knowing what the code was doing.

The correct terminology is SNAPSHOT … not screenshot.
A screenshot is an image.
A SNAPSHOT is a copy of the original source.
But do not worry, neither you nor any others that can copied this source, without attibuting the orginal author, knows the difference.

Easter  Deckow

Easter Deckow

1655630160

PyTumblr: A Python Tumblr API v2 Client

PyTumblr

Installation

Install via pip:

$ pip install pytumblr

Install from source:

$ git clone https://github.com/tumblr/pytumblr.git
$ cd pytumblr
$ python setup.py install

Usage

Create a client

A pytumblr.TumblrRestClient is the object you'll make all of your calls to the Tumblr API through. Creating one is this easy:

client = pytumblr.TumblrRestClient(
    '<consumer_key>',
    '<consumer_secret>',
    '<oauth_token>',
    '<oauth_secret>',
)

client.info() # Grabs the current user information

Two easy ways to get your credentials to are:

  1. The built-in interactive_console.py tool (if you already have a consumer key & secret)
  2. The Tumblr API console at https://api.tumblr.com/console
  3. Get sample login code at https://api.tumblr.com/console/calls/user/info

Supported Methods

User Methods

client.info() # get information about the authenticating user
client.dashboard() # get the dashboard for the authenticating user
client.likes() # get the likes for the authenticating user
client.following() # get the blogs followed by the authenticating user

client.follow('codingjester.tumblr.com') # follow a blog
client.unfollow('codingjester.tumblr.com') # unfollow a blog

client.like(id, reblogkey) # like a post
client.unlike(id, reblogkey) # unlike a post

Blog Methods

client.blog_info(blogName) # get information about a blog
client.posts(blogName, **params) # get posts for a blog
client.avatar(blogName) # get the avatar for a blog
client.blog_likes(blogName) # get the likes on a blog
client.followers(blogName) # get the followers of a blog
client.blog_following(blogName) # get the publicly exposed blogs that [blogName] follows
client.queue(blogName) # get the queue for a given blog
client.submission(blogName) # get the submissions for a given blog

Post Methods

Creating posts

PyTumblr lets you create all of the various types that Tumblr supports. When using these types there are a few defaults that are able to be used with any post type.

The default supported types are described below.

  • state - a string, the state of the post. Supported types are published, draft, queue, private
  • tags - a list, a list of strings that you want tagged on the post. eg: ["testing", "magic", "1"]
  • tweet - a string, the string of the customized tweet you want. eg: "Man I love my mega awesome post!"
  • date - a string, the customized GMT that you want
  • format - a string, the format that your post is in. Support types are html or markdown
  • slug - a string, the slug for the url of the post you want

We'll show examples throughout of these default examples while showcasing all the specific post types.

Creating a photo post

Creating a photo post supports a bunch of different options plus the described default options * caption - a string, the user supplied caption * link - a string, the "click-through" url for the photo * source - a string, the url for the photo you want to use (use this or the data parameter) * data - a list or string, a list of filepaths or a single file path for multipart file upload

#Creates a photo post using a source URL
client.create_photo(blogName, state="published", tags=["testing", "ok"],
                    source="https://68.media.tumblr.com/b965fbb2e501610a29d80ffb6fb3e1ad/tumblr_n55vdeTse11rn1906o1_500.jpg")

#Creates a photo post using a local filepath
client.create_photo(blogName, state="queue", tags=["testing", "ok"],
                    tweet="Woah this is an incredible sweet post [URL]",
                    data="/Users/johnb/path/to/my/image.jpg")

#Creates a photoset post using several local filepaths
client.create_photo(blogName, state="draft", tags=["jb is cool"], format="markdown",
                    data=["/Users/johnb/path/to/my/image.jpg", "/Users/johnb/Pictures/kittens.jpg"],
                    caption="## Mega sweet kittens")

Creating a text post

Creating a text post supports the same options as default and just a two other parameters * title - a string, the optional title for the post. Supports markdown or html * body - a string, the body of the of the post. Supports markdown or html

#Creating a text post
client.create_text(blogName, state="published", slug="testing-text-posts", title="Testing", body="testing1 2 3 4")

Creating a quote post

Creating a quote post supports the same options as default and two other parameter * quote - a string, the full text of the qote. Supports markdown or html * source - a string, the cited source. HTML supported

#Creating a quote post
client.create_quote(blogName, state="queue", quote="I am the Walrus", source="Ringo")

Creating a link post

  • title - a string, the title of post that you want. Supports HTML entities.
  • url - a string, the url that you want to create a link post for.
  • description - a string, the desciption of the link that you have
#Create a link post
client.create_link(blogName, title="I like to search things, you should too.", url="https://duckduckgo.com",
                   description="Search is pretty cool when a duck does it.")

Creating a chat post

Creating a chat post supports the same options as default and two other parameters * title - a string, the title of the chat post * conversation - a string, the text of the conversation/chat, with diablog labels (no html)

#Create a chat post
chat = """John: Testing can be fun!
Renee: Testing is tedious and so are you.
John: Aw.
"""
client.create_chat(blogName, title="Renee just doesn't understand.", conversation=chat, tags=["renee", "testing"])

Creating an audio post

Creating an audio post allows for all default options and a has 3 other parameters. The only thing to keep in mind while dealing with audio posts is to make sure that you use the external_url parameter or data. You cannot use both at the same time. * caption - a string, the caption for your post * external_url - a string, the url of the site that hosts the audio file * data - a string, the filepath of the audio file you want to upload to Tumblr

#Creating an audio file
client.create_audio(blogName, caption="Rock out.", data="/Users/johnb/Music/my/new/sweet/album.mp3")

#lets use soundcloud!
client.create_audio(blogName, caption="Mega rock out.", external_url="https://soundcloud.com/skrillex/sets/recess")

Creating a video post

Creating a video post allows for all default options and has three other options. Like the other post types, it has some restrictions. You cannot use the embed and data parameters at the same time. * caption - a string, the caption for your post * embed - a string, the HTML embed code for the video * data - a string, the path of the file you want to upload

#Creating an upload from YouTube
client.create_video(blogName, caption="Jon Snow. Mega ridiculous sword.",
                    embed="http://www.youtube.com/watch?v=40pUYLacrj4")

#Creating a video post from local file
client.create_video(blogName, caption="testing", data="/Users/johnb/testing/ok/blah.mov")

Editing a post

Updating a post requires you knowing what type a post you're updating. You'll be able to supply to the post any of the options given above for updates.

client.edit_post(blogName, id=post_id, type="text", title="Updated")
client.edit_post(blogName, id=post_id, type="photo", data="/Users/johnb/mega/awesome.jpg")

Reblogging a Post

Reblogging a post just requires knowing the post id and the reblog key, which is supplied in the JSON of any post object.

client.reblog(blogName, id=125356, reblog_key="reblog_key")

Deleting a post

Deleting just requires that you own the post and have the post id

client.delete_post(blogName, 123456) # Deletes your post :(

A note on tags: When passing tags, as params, please pass them as a list (not a comma-separated string):

client.create_text(blogName, tags=['hello', 'world'], ...)

Getting notes for a post

In order to get the notes for a post, you need to have the post id and the blog that it is on.

data = client.notes(blogName, id='123456')

The results include a timestamp you can use to make future calls.

data = client.notes(blogName, id='123456', before_timestamp=data["_links"]["next"]["query_params"]["before_timestamp"])

Tagged Methods

# get posts with a given tag
client.tagged(tag, **params)

Using the interactive console

This client comes with a nice interactive console to run you through the OAuth process, grab your tokens (and store them for future use).

You'll need pyyaml installed to run it, but then it's just:

$ python interactive-console.py

and away you go! Tokens are stored in ~/.tumblr and are also shared by other Tumblr API clients like the Ruby client.

Running tests

The tests (and coverage reports) are run with nose, like this:

python setup.py test

Author: tumblr
Source Code: https://github.com/tumblr/pytumblr
License: Apache-2.0 license

#python #api 

Lyda  White

Lyda White

1628189100

How to Image Uploader with Preview || Html CSS JavaScript

Image Uploader with Preview || Html CSS JavaScript || #html #css #javascript #coding

#html #css #javascript 

w3hubs com

w3hubs com

1661626407

Display Current Time Using HTML,CSS And JavaScript

In this Display Current Time, we were Using HTML, CSS And JavaScript. We used the javascript inbuild function for a time, and to display, we used javascript DOM. To show the live time, we used javascript setInterval functions.

Also Read:- Bootstrap Progress Bar Percentage Using Jquery

For the responsive side, we used CSS media queries. Also, to make it more attractive, we used a background image with an opacity background.

Make it yours now by using it, downloading it, and please share it. we will design more elements for you.

Source Code

 

#javascript #JavaScript #html #HTML 

Ava Watson

Ava Watson

1595318322

Know Everything About HTML With HTML Experts

HTML stands for a hypertext markup language. For the designs to be displayed in web browser HTML is the markup language. Technologies like Cascading style sheets (CSS) and scripting languages such as JavaScript assist HTML. With the help of HTML websites and the web, designs are created. Html has a wide range of academic applications. HTML has a series of elements. HTML helps to display web content. Its elements tell the web how to display the contents.

The document component of HTML is known as an HTML element. HTML element helps in displaying the web pages. An HTML document is a mixture of text nodes and HTML elements.

Basics of HTML are-

The simple fundamental components oh HTML is

  1. Head- the setup information for the program and web pages is carried in the head
  2. Body- the actual substance that is to be shown on the web page is carried in the body
  3. HTML- information starts and ends with and labels.
  4. Comments- come up in between

Html versions timeline

  1. HTML was created in 1990. Html is a program that is updated regularly. the timeline for the HTML versions is
  2. HTML 2- November, 1995
  3. HTML 3- January, 1997
  4. HTML 4- December, 1997; April, 1998; December, 1999; May, 2000
  5. HTML 5- October, 2014; November, 2016; December, 2017

HTML draft version timelines are

  1. October 1991
  2. June 1992
  3. November 1992
  4. June 1993
  5. November 1993
  6. November 1994
  7. April 1995
  8. January 2008
  9. HTML 5-
    2011, last call
    2012 candidate recommendation
    2014 proposed recommendation and recommendation

HTML helps in creating web pages. In web pages, there are texts, pictures, colouring schemes, tables, and a variety of other things. HTML allows all these on a web page.
There are a lot of attributes in HTML. It may get difficult to memorize these attributes. HTML is a tricky concept. Sometimes it gets difficult to find a single mistake that doesn’t let the web page function properly.

Many minor things are to be kept in mind in HTML. To complete an HTML assignment, it is always advisable to seek help from online experts. These experts are well trained and acknowledged with the subject. They provide quality content within the prescribed deadline. With several positive reviews, the online expert help for HTML assignment is highly recommended.

#html assignment help #html assignment writing help #online html assignment writing help #html assignment help service online #what is html #about html

CSS Boss

CSS Boss

1606912089

How to create a calculator using javascript - Pure JS tutorials |Web Tutorials

In this video I will tell you How to create a calculator using javascript very easily.

#how to build a simple calculator in javascript #how to create simple calculator using javascript #javascript calculator tutorial #javascript birthday calculator #calculator using javascript and html